2012-03-25 10 views
2

Ich bin mir nicht sicher, wie Sie doppelte Markierungen auf einer Google-Karte am besten vermeiden können. Mein derzeitiges Setup ist, dass die Website an den Server mit den Kartengrenzen des Benutzers sendet. Es werden Marker zurückgegeben, die mit dem Kartenort/den Koordinaten übereinstimmen, aber ich entscheide, ob es besser ist, nach doppelten Markern auf der Client-Seite zu suchen (durch alle aktuellen Marker in Javascript) oder nur eindeutige Marker vom Server zurückzugeben, indem man die zuvor zurückgegebenen Marker durchläuft. Oder vielleicht gibt es einen besseren Weg als Schleifen zu benutzen?Doppelte Google Map-Markierungen verhindern

Antwort

5

Sie pflegen eine associative array und hash den Schlüssel in einer Weise, dass zwei ähnliche Markierungen den gleichen Hash, etwas wie eine ID bekommen.

Bevor Sie einen Marker in die Karte setzen, prüfen Sie Ihr assoziatives Array, wenn ein Eintrag für diesen Schlüssel existiert. Wenn Sie nichts anderes tun, fügen Sie einen Schlüssel hinzu und fügen ihn zur Karte hinzu.

var markers=[]; 

function addMarkerToMap(markerId,prop1,prop2) 
{ 

    if(!markers[markerId]) 
    { 
     markers[markerId]=true; 
     //code to marker to map 
    } 

} 
+0

So genial und einfach. Ich danke dir sehr! (auch ein weiterer Grund, die nächtliche Programmierung zu vermeiden) – Yuriy

+0

Da Sie sich auf den Server verlassen können, könnte die gleiche Hash-Logik dort implementiert werden, um die Leistung durch Verringerung der Bandbreite zu verbessern. –

+0

@EricBridger, guter Punkt, obwohl Client mehr Sinn machen würde, wenn Sie einen zustandslosen Server zwischen Anfragen wünschen. –

Verwandte Themen