Google Maps - zentriert auf den Standort des Benutzers

Segelflugzeug

Ich habe eine Google Map mit Hunderten von Markern. Ich möchte, dass sich die Karte auf den Standort des Benutzers konzentriert - vorzugsweise mit einem Klick auf eine Schaltfläche. Derzeit habe ich es auf das Laden der Seite zentriert, aber mit einem Problem - es löscht alle Markierungen, wenn es auf der Position zentriert ist. Ich gehe davon aus, dass dies daran liegt, wie ich das Skript aufrufe. Die ID des Kartencontainers lautet 'map4'.

Wie kann ich dieses Skript zum Laufen bringen, ohne die vorhandenen Markierungen zu löschen? Jede Hilfe wäre sehr dankbar.

<script>
var map;    // Google map object

// Initialize and display a google map
function Init()
{
    // HTML5/W3C Geolocation
    if ( navigator.geolocation )
        navigator.geolocation.getCurrentPosition( UserLocation );
    // Default to Sherman Oaks
    else
        ShowLocation( 38.8951, -77.0367, "Sherman Oaks, CA" );
}

// Callback function for asynchronous call to HTML5 geolocation
function UserLocation( position )
{
    ShowLocation( position.coords.latitude, position.coords.longitude, "This is your Location" );
}

// Display a map centered at the specified coordinate with a marker and InfoWindow.
function ShowLocation( lat, lng, title )
{
    // Create a Google coordinate object for where to center the map
    var latlng = new google.maps.LatLng( lat, lng );    

    // Map options for how to display the Google map
    var mapOptions = { zoom: 12, center: latlng  };

    // Show the Google map in the div with the attribute id 'map-canvas'.
    map = new google.maps.Map(document.getElementById('map4'), mapOptions);

    // Place a Google Marker at the same location as the map center 
    // When you hover over the marker, it will display the title
    var marker = new google.maps.Marker( { 
        position: latlng,     
        map: map,      
        title: title
    });

    // Create an InfoWindow for the marker
    var contentString = "<b>" + title + "</b>"; // HTML text to display in the InfoWindow
    var infowindow = new google.maps.InfoWindow( { content: contentString } );

    // Set event to display the InfoWindow anchored to the marker when the marker is clicked.
    google.maps.event.addListener( marker, 'click', function() { infowindow.open( map, marker ); });
}

// Call the method 'Init()' to display the google map when the web page is displayed ( load event )
google.maps.event.addDomListener( window, 'load', Init );

</script>
Matej P.

Wenn ich Sie richtig verstehe, haben Sie anscheinend bereits eine Karte mit Markierungen erstellt und möchten dann die SEHR GLEICHE Karte zentrieren. In diesem Fall muss Ihre ShowLocation()Funktion geändert werden. Der Grund ist, dass diese Linie

map = new google.maps.Map(document.getElementById('map4'), mapOptions);

Erstellt eine neue Instanz der Karte (ersetzt alle vorhandenen Karten in diesem Container, wenn der bereitgestellte Kartencontainer identisch ist).

Ihr Problem ist also, dass Sie eine neue Karte erstellen und zentrieren, anstatt nur die alte zu zentrieren.

Ändern Sie einfach die Zentrierungsfunktion, um mit einer vorhandenen Karte zu arbeiten:

function ShowLocation( lat, lng, title , map)
{
    // Create a Google coordinate object for where to center the map
    var latlng = new google.maps.LatLng( lat, lng);    

    //Working with existing map instead of creating a new one
    map.setCenter(latlng);
    map.setZoom(12);

    // Place a Google Marker at the same location as the map center 
    // When you hover over the marker, it will display the title
    var marker = new google.maps.Marker( { 
        position: latlng,     
        map: map,      
        title: title
    });

    // Create an InfoWindow for the marker
    var contentString = "<b>" + title + "</b>"; // HTML text to display in the InfoWindow
    var infowindow = new google.maps.InfoWindow( { content: contentString } );

    // Set event to display the InfoWindow anchored to the marker when the marker is clicked.
    google.maps.event.addListener( marker, 'click', function() { infowindow.open( map, marker ); });
}

Beim Aufrufen der ShowLocationFunktion ist der vierte Parameter das google.maps.MapObjekt, das Sie beim Hinzufügen der Markierungen erstellt haben. Sie können die Karte nicht nur referenzieren, wenn Sie wissen, dass sie Elemente enthält id. Sie benötigen die Referenz dafür.

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Bestimmen Sie den Standort des Benutzers und übersetzen Sie Fehlermeldungen

Wie formatiere ich LocalDate auf das Standardformat für den Standort des Benutzers?

MapKit-Zoom auf den aktuellen Standort des Benutzers

Was ist der einfachste und robusteste Weg, um den aktuellen Standort des Benutzers auf Android zu ermitteln?

Synchronisieren Sie den Standort des Benutzers mit Google Maps in Java Script

Wie kann ich die Karte schnell auf den Standort des Benutzers zentrieren?

Sperren Sie Google Maps am Standort des Benutzers

JavaScript Google Maps API - Im Mittelpunkt steht der Standort des Benutzers, auf dem keine Karte geladen wird

Holen Sie sich den Standort des Benutzers in Flask

Flattern - Google Maps wartet nicht auf den Standort

Warum wird Google Maps beim ersten Start nicht automatisch auf den Standort des Nutzers zoomen?

So ermitteln Sie das Alter und den Standort des Benutzers bei der Google-Anmeldung

So legen Sie in Google Maps Flutter den dynamischen Standort oder den Standort des Benutzers auf Kreis fest und zeigen Markierungen an, die sich nur innerhalb des Kreises befinden

Hintergrund kontinuierlicher Zugriff auf den Live-Standort eines Benutzers

So suchen Sie den Standort auf Google Maps

Wie aktualisiere ich den Standort basierend auf den Latlong-Variablen in Google Maps auf der Webseite?

So zeigen Sie den Standort des Benutzers im Google Maps iOS SDK an

Wenn Sie die Karte auf den Standort des Benutzers zentrieren, wird der blaue Punkt nicht angezeigt

Zentrieren Sie den Standort des Benutzers auf Google Maps, aber erlauben Sie die freie Bewegung

Google Map zentriert auf dem aktuellen Standort des Benutzers PLUS Standardstandort als Backup

Wie kann die Google Maps-API den aktuellen Standort des Benutzers abrufen, um ihn in der Datenbank zu speichern?

Die Kamera folgt nicht dem aktuellen Standort des Benutzers in Google Maps

Android Maps - Wie zentriere ich die Karte automatisch auf den aktuellen Standort des Benutzers?

Was ist der einfachste und beste Weg, um den aktuellen Standort des Benutzers auf Android zu ermitteln?

So fokussieren Sie die Google Maps-Kamera beim Start mithilfe von SwiftUI-Ansichten auf den aktuellen Standort des Benutzers

Wie kann man die SwiftUI-Ansicht in UIViewControllerRepresentable einschließen, damit sich die Google Maps-Kamera beim Start auf den Standort des Benutzers konzentriert?

SwiftUI-Mapkit setzt die Region auf den aktuellen Standort des Benutzers

SwiftUI: Wie erhalte ich den aktuellen Standort des Benutzers?

Zentrieren Sie eine MapView auf den Standort des Benutzers

TOP Liste

heißlabel

Archiv