Hier ist eine umfassendere Lösung:
Füge in .html hinzu:
Füge in .js hinzu:
MarkerClusterer.prototype.remove = function() { };
var HIDDEN_MAP = new google.maps.Map(document.getElementById("map-canvas-hidden"), {});
var gmap = new google.maps.Map(document.getElementById("map-canvas-shown"), {});
Um die Cluster anzuzeigen:
cluster.setMap(gmap);
cluster.resetViewport();
cluster.redraw();
Um die Cluster zu verstecken:
cluster.setMap(HIDDEN_MAP);
cluster.resetViewport();
cluster.redraw();
Zuletzt benötigte ich die folgenden Patches für markerclusterer.js:
--- markerclusterer.js.orig 2013-12-06 18:02:32.887516000 +0100
+++ markerclusterer.js 2013-12-06 18:03:25.487516924 +0100
@@ -620,6 +620,7 @@
*/
MarkerClusterer.prototype.getExtendedBounds = function(bounds) {
var projection = this.getProjection();
+ if (!projection) return null;
// Wandle die Grenzen in Lat/Lng um.
var tr = new google.maps.LatLng(bounds.getNorthEast().lat(),
@@ -657,7 +658,7 @@
* @private
*/
MarkerClusterer.prototype.isMarkerInBounds_ = function(marker, bounds) {
- return bounds.contains(marker.getPosition());
+ return bounds ? bounds.contains(marker.getPosition()) : false;
};
Ich hoffe, das hilft
0 Stimmen
Die setVisible() Antwort auf diese andere Frage scheint für mich zu funktionieren stackoverflow.com/questions/14894384/…