Ich möchte Marker durch Ajax bekommen, wie meine Karte zu bewegen. Gibt es jedoch eine Methode, um zu vermeiden, dass Marker mit der gleichen Breite und Länge auf Google Maps geladen werden? Nehmen wir an, sobald die Markierung für eine bestimmte geographische Breite und Länge geladen ist, wird sie nicht ein zweites Mal hinzugefügt, wenn die Karte zurück zum Ort bewegt wird. Vielen Dank.Vermeiden Sie laden Marker mit der gleichen Breite und Länge auf Google-Karte
Antwort
Behalten Sie ein Array von Markern und schauen Sie es sich an, bevor Sie neue Marker laden, um sicherzustellen, dass sie noch nicht geladen wurden. Fügen Sie jede neue Markierung hinzu, indem Sie sie an das Array anhängen.
Um Marker zu erstellen, müssen Sie die lat und long Daten irgendwo haben. Stellen Sie sicher, dass diese Datengruppe keine Duplikate enthält, bevor Sie die Methode zum Erstellen der Markierung aufrufen.
Zum Beispiel habe ich eine Reihe von Lat und Long-Werte, var latLong = [ [1.8, 2.6], [3.4, 1.1], ...];
. Ich kann durch dieses Array iterieren und die Duplikate entfernen. Übergeben Sie dann den resultierenden Datensatz an meine Marker-Creator-Routine.
Sie können alle Markierungen entfernen, wenn sich das Ansichtsfenster ändert, und die neuen Markierungen für das aktuelle Ansichtsfenster abrufen und anzeigen.
Wenn Sie wollen, dass alle Marker gehalten werden auf der Karte, die ich wegen der Geschwindigkeit nicht empfehlen reduzieren Sie alle newcome Marker auf ein Array schieben kann und eine Art von Check machen (Wenn der Marker bereits in diesem Array vorhanden ist, drücken Sie nicht).
Speichern Sie die Marker in einem Objekt "Hash" und geben Sie sie unter lat-long
ein.
So:
var marker_dict = {}, i=0, l=latLongArray.length, lat, lng;
while (i < l) {
lat = latLongArray[i][0], lng = latLongArray[i][1]
marker_dict[lat + '-' + lng] = new google.maps.Marker(
new google.maps.LatLng(lat, lng)
);
i++;
}
Dann wird, wie Sie in neuem Marker hinzufügen, einfach stellen Sie sicher, zu überprüfen, dass der Schlüssel nicht bereits in Ihrem marker_dict
ist.
Auf diese Weise müssen Sie nicht jedes Mal das gesamte Array durchlaufen, wenn die Karte verschoben wird.
- 1. finden Breite und Länge der gespeicherten Marker in Faltblatt
- 2. Breite/Länge und Meter
- 3. SQL Server Breite und Länge Datentyp
- 4. erhalten geografische Breite und Länge mit zipcode
- 5. Parsing Breite und Länge mit Ruby
- 6. bekommen Breite und Länge von searchbox
- 7. Scalacheck generiert Gen.alphastr mit der gleichen Länge
- 8. Ausrichtung Elemente mit der gleichen Breite ausrichten
- 9. Publishing-Marker und Punktwolke zur gleichen Zeit
- 10. Kinder Spannweiten der gleichen Breite
- 11. Wie formatiert man GPS Breite und Länge?
- 12. PostgreSQL Breite Länge Abfrage
- 13. Berechnung Bildschirmposition von Breite und Länge
- 14. Marker dynamisch laden
- 15. Breite und Länge von Web-Services
- 16. Skewed ggmap Breite und Länge in Handlung
- 17. Maxmind - Breite und Länge von Postleitzahl
- 18. PHP Zeitzone Name aus Breite und Länge?
- 19. Nicht erhalten Breite und Länge in Android
- 20. Berechnen Sie den Azimut zwischen zwei Punkten mit der Breite und Länge sind bekannt mit VBA
- 21. Xpath zum Abrufen von Breite und Länge
- 22. Zwei Marker an der gleichen Position
- 23. Google Platz API erhalten Breite und Länge der Orte
- 24. Clustering Länge und Breite GPS-Daten
- 25. effizient zwei BitArrays der gleichen Länge vergleichen
- 26. PHP - Holen Sie Breite und Länge von einer Adresse
- 27. topojson/D3/Karte mit Länge + Breite
- 28. Wie zu vermeiden, wiederholen Sie die gleichen Zeilen auf CSS?
- 29. Machen Sie eine Liste der gleichen Länge Vektoren
- 30. Breite/Länge Qt4 Widget?
Danke dafür, hat mir heute geholfen! –