Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 5 Min.

Komplexe Karten und Funktionen

Wie man mithilfe von JavaScript das Zeichnen von Polygonen in Google Maps realisieren kann.
Als Entwickler können Sie den Google Maps Service nutzen, um Ausschnitte von Google Maps auf Ihrer Webseite oder in Ihre Mails einzubinden. Damit können Sie beispielsweise Ihren Standort genau präsentieren oder in dem Kartenausschnitt eine perfekte Wegbeschreibung ermöglichen.Der einfachste Weg hierzu ist, Google Maps als iFrame-Element in eine Webseite per HTML-Code zu implementieren. Über den Google Maps Codegenerator funktioniert die Erzeugung des benötigten HTML-Codes mit einem Klick auf die Schaltfläche Get HTML-Code (Bild 1). Über die Einbettung von Googles Kartendienst mithilfe der Google Maps API eröffnen sich für den Entwickler, durch die Nutzung der Programmierschnittstelle, vollkommen neue Möglichkeiten, Google Maps in das eigene Webprojekt zu integrieren. Nimmt man dann noch JavaScript zur Programmierung hinzu, lassen sich auch komplexe Karten und Funktionen mit Google Maps nutzen. Hierzu benötigen Sie allerdings einen entsprechenden API-Key von Google.
Der Google Map Code Generatorerleichtert die Codierung(Bild 1) © Basler
Um mit der Nutzung von Google Maps via JavaScript starten zu können, benötigen Sie für Google Maps ein aktives Google-Konto. Beachten Sie bitte, dass Google nur einen kostenlosen Testmonat aktuell mit einem Guthaben über circa 200 US-Dollar zur Verfügung stellt. Eine Nutzung darüber hinaus wird in Rechnung gestellt. Das Google-Konto erlaubt es Ihnen dann, einen entsprechenden Authentifikations-Key für die Nutzung der Google Maps API zu erstellen.

Google Maps-API Key erstellen

Um einen Google Maps-API Key zu erstellen, gehen Sie wie folgt vor: Öffnen Sie die Google Cloud Console und erstellen Sie über das Dashboard ein neues Projekt. Legen Sie den Projektnamen fest und klicken Sie auf Erstellen.Wählen Sie danach den Link Zur API-Übersicht und suchen Sie im Textfeld von APIs und Dienste den Eintrag Google Maps JavaScript API. Anschließend klicken Sie auf Aktivieren. Setzen Sie den Vorgang mit einem Klick auf Weiter fort und bestätigen Sie die Nutzungsbedingungen von Google. Nachdem Sie den API-Key erzeugt haben, können Sie ihn sofort in Ihrer Webanwendung für die Nutzung von Google Maps verwenden.

Die Core Web App

Sie benötigen für dieses Beispiel die Community-Edition von Visual Studio 2022 oder alternativ Visual Studio 2019. In diesem Workshop soll die Google Map in einer ASP.NET Core Web App auf Basis von MVC (Model-View-Controller) erstellt werden. Hierfür benutzen Sie einfach die zur Verfügung stehende Microsoft ASP.NET-Webvorlage.Die Projektvorlage finden Sie unter Create a new project und dann in der Auswahlliste mit der vollständigen Bezeichnung ASP.NET Core Web App (Model-View-Controller). Wählen Sie die Projektvorlage aus (Bild 2) und vergeben Sie als Vorbereitung für die Beispielanwendung den Namen GoogleMapsDemo. Wählen Sie als Framework .NET Core 3.1 aus und schließen Sie das Dialogfenster mit Create ab.
Projektauswahl:Über diesen Dialog erfolgt die Projektauswahl(Bild 2) © Basler
Visual Studio erstellt automatisch aus dem Template eine bereits lauffähige Webapplikation. Diese Vorlage lässt sich gut für kleine übersichtliche Client-Web Applikationen nutzen. Bild 3 zeigt die entsprechende Projektstruktur der MVC-Web-App. Über die Taste [F5] oder das Startsymbol lässt sich die Web-App jetzt auch schon ausführen. Visual Studio startet hierfür im Hintergrund einen Webserver und präsentiert die Startseite der Anwendung im vorgewählten Browser.
Die Projektstrukturder Web-App zum Zeichnen in Google Maps(Bild 3) © Basler
Es gibt eine Vielzahl von Möglichkeiten, die JavaScript API von Google Maps in eigenen Projekten einzusetzen. Bild 4 zeigt die Google-Dokumentation der JavaScript API für die Nutzung der Kartenelemente und deren Einsatzzweck.
Die Dokumentationder Google Maps API ist übersichtlich aufgebaut(Bild 4) © Basler
Im Beispiel verwenden Sie klassisches JavaScript einfach in der Razor-Website der Projektvorlage. Im ersten Schritt fügen Sie dem Projekt erst einmal eine entsprechende Überschrift hinzu. Öffnen Sie hierfür die Datei Index.cshtml im Projektordner Views/Home und ersetzen Sie den HTML-Code wie folgt:
@{
    ViewData["Title"] = 
    "Home Page";
}
<div class="text-center">
    <h3>Freihandzeichnen in 
    Google Maps</h3> 
</div>
 
Im nächsten Schritt fügen Sie dem Projekt die benötigten JavaScript-Dateien für die Google Maps API hinzu. Wechseln Sie hierfür in die Razor-Datei _Layout.cshtml im Unterordner Shared. Hier können Sie den kompletten <header>-Tag Bereich entfernen. Dadurch wird die Datei für das Beispiel etwas übersichtlicher. Fügen Sie jetzt die drei nachfolgenden JavaScript-Aufrufe in der Header-Sektion hinzu:
<script src="https://ajax.googleapis.com/ajax/libs/
jquery/2.1.1/jquery.min.js">
</script>
<script src="https://maps.googleapis.com/maps/api/js?
sensor=false&libraries=geometry,places&ext=.js">
</script>
<script async src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
 
Anstelle von YOUR_API_KEY müssen Sie natürlich den von Ihnen erzeugten Google Maps API-Key einsetzen Im nächsten Schritt können Sie für das Beispiel das <Style>-Tag Element für die Kartenansicht definieren und den Link für die Aktivierung der Zeichenfunktion implementieren:
<style>
    #map_canvas {
        height: 500px;
        width: 100%;
    }
</style>
<div class="text-center">
    <div id="drawpoly"><a href="#">Hier klicken, um auf 
    der Karte zu zeichnen</a></div>
    <div id="map_canvas"></div>
</div>
 
Der Code steuert die Einbindung der Karte und verwendet die Funktion draw() direkt als Link-Ziel. Die Einbindung von JavaScript direkt im href-Attribut sollten Sie im Allgemeinen aber nur in Tests verwenden. Der Link kann nur bei aktiviertem JavaScript ausgeführt werden. Besser wäre die Verwendung eines onClick-Handlers um JavaScript auszuführen. Das folgende Listing zeigt den vollständigen Code der Datei _Layout.cshtml mit allen vorgenommenen Anpassungen:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>@ViewData["Title"] - DemoGoogleMaps</title>
    <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="~/css/site.css" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=geometry,places&ext=.js"></script>
    <script async src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"></script>
    <style>
        #map_canvas {
            height: 500px;
            width: 100%;
        }
    </style>
</head>
<body>
    <div class="text-center">
        <div id="drawpoly"><a href="#">Hier klicken, um auf der Karte zu zeichnen</a></div>
        <div id="map_canvas"></div>
    </div>
    <div class="container">
        <main role="main" class="pb-3">
            @RenderBody()
        </main>
    </div>

    <footer class="border-top footer text-muted">
        <div class="container">
            © 2022 - DemoGoogleMaps - <a asp-area="" asp-controller="Home" asp-action="Privacy">Privacy</a>
        </div>
    </footer>
    <script src="~/lib/jquery/dist/jquery.min.js"></script>
    <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
    <script src="~/js/site.js" asp-append-version="true"></script>    
    @RenderSection("Scripts", required: false)
</body>
</html>

 
Der Programmcode für das Zeichnen in der Anwendung übernimmt der JavaScript-Code aus dem folgenden Listing:

<script>
function drawAnewPolygon()
{    
    poly=new google.maps.Polyline({map:map,clickable:false});   
    
    var move=google.maps.event.addListener(map,'mousemove',function(e){
        poly.getPath().push(e.latLng);
    });    
    
    google.maps.event.addListenerOnce(map,'mouseup',function(e){
        google.maps.event.removeListener(move);
        var path=poly.getPath();
        poly.setMap(null);
        poly=new google.maps.Polygon({map:map,path:path});        
        google.maps.event.clearListeners(map.getDiv(), 'mousedown');        
        enable();
    });
}

function disable(){
  map.setOptions({
    draggable: false, 
    zoomControl: false, 
    scrollwheel: false, 
    disableDoubleClickZoom: false
  });
}

function enable(){
  map.setOptions({
    draggable: true, 
    zoomControl: true, 
    scrollwheel: true, 
    disableDoubleClickZoom: true
  });
}

function initialize() 
{
  var mapOptions = {
    zoom: 14,
    center: new google.maps.LatLng(52.371790, 9.735244),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
       
  //draw
  $("#draw a").click(function(e) {
    e.preventDefault();
    disable();
    google.maps.event.addDomListener(map.getDiv(),'mousedown',function(e){
      drawAnewPolygon()
    });
  });
}

google.maps.event.addDomListener(window, 'load', initialize);
</script>

 
Der Code erlaubt es Ihnen jetzt freihand in der Karte von Google Maps zu zeichnen.Durch die Funktion Initialize() wird die Karte mit den Koordinaten der Marktkirche in Hannover dargestellt. Die Funktionen enable() und disable() sorgen für das Ein- bzw. Ausblenden der jeweiligen Kartenoptionen. Über den EventListener wird die entsprechende Maps Polygon-Funktion der Google Maps API mit den übergebenen Maus-Koordinaten ausgeführt. Das heißt, ein EventListener ist eine Methode in JavaScript, um auf Events zu hören. Sobald ein Event ausgelöst wird, werden die Event-Eigenschaften als sogeanntes Event-Objekt übergeben. Bild 5 zeigt die lauffähige Web App aus dem Beispiel-Projekt.
Einsatz:So kann man mithilfe der Web-App in einer Karte zeichnen(Bild 5) © Basler
Dieser Workshop hat Ihnen einen kleinen Einblick über die Möglichkeiten der Google Maps API gegeben. Über die gute Online-Dokumentation können Sie Ihr Projekt beliebig ausbauen. Die Dokumentation ist sehr ausführlich und gut verständlich und bietet darüber hinaus viele Beispiel für den Umgang mit der Google Maps API.Auf der anderen Seite können Sie aber auch Ihre ASP.NET Core App erweitern. So zum Beispiel mit einer Speichermöglichkeit der gezeichneten Koordinaten in eine Datenbank und vieles mehr.
<b>◼ <a href="https://google-map-generator.com/" rel="noopener" target="_blank">Google Maps Codegenerator</a> <br/></b>
Miscellaneous

Neueste Beiträge

PandaOS: Die Workstation, die ich mir immer gewünscht habe
Monatelang bin ich zwischen KI-Werkzeugen hin- und hergesprungen. Cursor, Claude Code, OpenCode, Aider. Jedes hatte etwas Geniales, doch keines fühlte sich vollständig an. Also habe ich ein eigenes Tool gebaut? PandaOS ist das Ergebnis.
6 Minuten
Building Features is easy – echten Wert liefern nicht - Interview
Eva Feigl erklärt im DWX-Interview, warum Teams oft am falschen Problem arbeiten – und wie Annahmen, Vanity Metriken und fehlendes Nutzer-Feedback echten Produkterfolg verhindern.
5. Aug 2026
AI Slop vermeiden: Harness-First Engineering für Teams, die mit Coding Agenten arbeiten - Der neue Engpass heißt Vertrauen
Coding Agents wie GitHub Copilot, Cursor oder Claude Code haben die Produktivität von Entwicklungsteams dramatisch erhöht. Was früher Tage dauerte, entsteht heute in Stunden. Doch mit der Geschwindigkeit wächst ein neues Problem: Der Engpass liegt inzwischen im Vertrauen in das, was geschrieben wurde.
4 Minuten
4. Aug 2026

Das könnte Dich auch interessieren

C#-.NET-Apps mit WinUI 3 - Komponentenbasierte Apps mit Fluent/FAST, Teil 3
Microsoft macht mit WinUI 3 ein natives User-Experience-Framework für Windows verfügbar, dessen Komponenten auf dem Microsoft-eigenen Design-System Fluent 2 basieren.
23 Minuten
13. Mai 2024
UIs für Linux - Bedienoberflächen entwickeln mithilfe von C#, .NET und Avalonia
Es gibt viele UI-Frameworks für .NET, doch nur sehr wenige davon unterstützen Linux. Avalonia schafft als etabliertes Open-Source-Projekt Abhilfe.
16 Minuten
16. Jun 2025
Elektronische Schaltkreise im Browser simulieren - Simulation
Statt mit Steckfeld oder Lötkolben kann man auf dieser Website Schaltungen per Drag and Drop zusammenstellen und deren Verhalten testen.
2 Minuten
26. Jul 2018
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige