Es gibt die Vorstellung eines "Begrenzungsrechtecks" für eine Kartenansicht. Die Karte api liefert Ihnen diese als zwei Koordinatenpaare für die Länge / Länge - eine für die SW-Ecke und eine für die NE-Ecke.
Wenn Sie also einen benutzerdefinierten Datendienst haben, der JSON-Punkte zurückgibt, müssen Sie diese Koordinaten als Eingabe akzeptieren und das zurückgegebene Dataset entsprechend anpassen (höchstwahrscheinlich als WHERE-Klausel in Ihrer SELECT-Anweisung).
Ich habe nicht die Details, wie man dieses umrahmende Rechteck auswendig lernt, aber das sind API-Dokumente für.
Es gibt eine neue Bibliothek namens MarketClustered , die Ihnen helfen wird
alt text http://gmaps-samples.googlecode.com/svn/trunk/images /screenshot_clusterereffect.jpg
Auch wenn die Daten zu groß sind, denke ich, dass es besser ist, die Karte mit allen Daten zu versorgen, und lass es so machen.
Ja, ich habe etwas Ähnliches in einem Antrag für eine lokale Behörde gemacht, wo wir die Menge jedes Hauses gezeigt haben, das über 6.000 ungeraden Haushalten recycelt wurde. Da die Gesamtmenge der Daten (die Adressen und statistische Informationen für jeden Haushalt enthielten) ziemlich groß war, führte das Zurückziehen der gesamten Datendatei in einem Rutsch dazu, dass der Browser scheinbar hängen blieb.
Anstatt also im AJAX-Aufruf an die Datenbank die Koordinaten des Begrenzungsrechtecks (Breite, Länge) des Kartenbereichs zu senden, haben wir nur die sichtbaren Punkte zurückgeliefert. Aufgrund der Art der Anwendung war eine benutzergesteuerte Schaltfläche zum Abrufen von Daten durchaus akzeptabel, aber es gibt offensichtlich viele andere Variationen, die Sie mit dem Thema spielen können - sobald Sie die Begrenzungskoordinaten an die Serverseite übergeben, können Sie entscheiden, was um dort zu tun - zum Beispiel nur eine Teilmenge zurückgeben, wenn die Zoomstufe zu hoch ist. Sie sollten in der Lage sein, das Map-Draw-Ereignis ebenfalls zu erfassen und dies automatisch auszuführen.
Wenn sich der Zoom ändert, senden Sie die neue Zoomstufe an Ihren JSON-Dienst und geben Sie die Markierungen zurück, die auf dieser Ebene sichtbar sein sollen. Verwenden Sie addMarkers () , um die Ergebnisse zu MarkerManager hinzuzufügen und zu erstellen Sie sind nur auf der aktuellen Zoomstufe sichtbar.
Die anderen Antworten hier haben vorgeschlagen, nur die Markierungen in der aktuellen Ansicht zurückzugeben, aber Sie könnten auch alle Markierungen auf dieser Zoomstufe zurückgeben. Es hängt davon ab, wie viel Sie über die Marker wissen, die Sie auf jeder Ebene anzeigen möchten.
Mögliche Wege zur Lösung dieses Problems:
JSON
serverseitig, abhängig vom Zoomlevel (con: muss nach einem Zoom neu geladen werden, pro: nur kleine Datenmengen müssen geladen werden) JSON
-Daten zugegriffen werden kann (pro: nur einmal müssen Daten geladen werden, con: iterieren Sie die Daten mit JavaScript
) JavaScript
(pro: sehr dynamisch, con: starke Rechenlast) Tags und Links javascript google-maps json google-maps-markers