3

Ich stelle gerade eine Demo-Anwendung zusammen, die 28.000 Markierungen auf einer Karte zeigen muss, ohne irgendeine Art von Clustering zu verwenden. Das Problem besteht darin, den Marker so lange für die Karte zu setzen, bis der Browser abstürzt! Hier ist der aktuelle ProzessHinzufügen von Tausenden von Markierungen Google Map API V3

-Retrieves Kartenpunkte aus der Datenbank einschließlich LAT und LONG (nicht geocodiert hat) - für Schleifendurchläufe durch jede der zurückgegebenen Werte und tut dies:

var marker = new google.maps.Marker({ 
       position: point, 
       animation: google.maps.Animation.DROP, 
       map: map, 
       title: value.Title, 
       icon: icons['store'] 
      }); 

      google.maps.event.addListener(marker, 'click', function() { 
       var hidingMarker = currentPlace; 
       var slideIn = function (marker) { 
        $('#Name', info).text(place.Title); 
        $('#Phone', info).text(place.Description); 
        $('#Address', info).text(place.Proper_Address); 
        $('#LastSale', info).text("Last Sale:" + place.Last_Sale); 
        info.animate({ right: '0%' }); 
       } 

- die Markierungen kommen herein und der Benutzer kann auf irgendeinen von ihnen klicken, um ein wenig Informationen zu sehen

Gibt es einen effizienteren Weg, dies zu tun, so dass 28.000 möglich wäre, ohne sie zu clustern? Ich habe einige Skripte gefunden, die Leute geschrieben haben, um damit umzugehen, aber sie sind alle für API V2. Alle Links oder Code wird sehr geschätzt! danke!

+0

Was ist der Anwendungsfall? Wie sind 28000 Marker für den Benutzer nützlich? Vor allem, wenn sie einen auswählen sollen, um darauf zu klicken. Es ist viel besser, die Markierungen auf das Ansichtsfenster zu beschränken und nach Bedarf hinzuzufügen/zu entfernen. –

+1

Ich würde sagen, 28k von allem (egal, ob man einen Marker hinzufügt oder "boo" macht) wird jeden Browser zum Absturz bringen. Also mein Vorschlag: Tu es nicht. FusionTables können eine Option sein –

+0

der Anwendungsfall ist, alle Speicher auf der ganzen Welt Farbkoordinaten mit verschiedenen Statistiken zu plotten. Ich habe einen kleinen Punkt erstellt, um den größeren Standard zu ersetzen. Dies muss nur einmal funktionieren, es wird niemals für unsere Benutzer öffentlich sein – mscard02

Antwort

4

Nach meiner Erfahrung ist die einzige wirkliche Möglichkeit, um zu zeigen, dass viele Markierungen gleichzeitig auf der Karte sind, die Verwendung von Fusionstabellen (die einige Einschränkungen und andere Herausforderungen haben, die es zu umgehen gilt). Alle anderen Lösungen zum Behandeln dieser vielen Markierungen beinhalten eine Art von Clusterbildung oder funktionieren nicht mit einem breiten Zoom.

http://www.google.com/fusiontables/Home/

+0

es sieht aus wie Fusion Tabellen werden meine Antwort sein, danke dafür, dass ich in die richtige Richtung geschickt habe – mscard02

+0

Ich habe Fusion Tabellen verwendet und es wurde für diese Art von Problem entwickelt. –

1

Ich nehme an, Sie sind nicht wörtlich zeigt 28.000 auf dem Bildschirm auf einmal? Es wird nur eine Teilmenge sichtbar sein?

Wenn dies der Fall ist, warum machst du nicht einfach eine Serveranfrage mit dem angezeigten Koordinatenbereich, dann plotst du sie einfach? Es gibt Kartenereignisse, mit denen Sie wissen können, wann die Markierungen aktualisiert werden müssen, und Sie könnten vermeiden, zu viele Objekte gleichzeitig im Browser zu haben.

+0

ich brauche wirklich 28.000 auf dem Bildschirm auf einmal. Ich habe einen Kundenmarker erstellt, der ein winziger Punkt ist, der die Bilder so gut wie möglich überlappt. – mscard02

Verwandte Themen