Google maps api 3 ClusterMarkerer-没有出现群集-this.map\u0.mapTypes[this.map\u0.getMapTypeId()]是未定义的markerclusterer.js:304

Google maps api 3 ClusterMarkerer-没有出现群集-this.map\u0.mapTypes[this.map\u0.getMapTypeId()]是未定义的markerclusterer.js:304,google-maps-api-3,google-maps-markers,markerclusterer,Google Maps Api 3,Google Maps Markers,Markerclusterer,我的MarkerClusterer有问题 当我是400马克,集群出现,所有的工作。 但现在我有了超过600个云纹标记,并且没有出现集群 Firebug显示此错误: that.map_.mapTypes[that.map_.getMapTypeId()] is undefined markerclusterer.js:304 你有主意吗 谢谢我认为maps api已经改变,mapsTypes数组没有maxZoom属性谷歌似乎已经改变了api中的某些内容。 您可以手动将“群集选项”或“地图选项”

我的MarkerClusterer有问题

当我是400马克,集群出现,所有的工作。 但现在我有了超过600个云纹标记,并且没有出现集群

Firebug显示此错误:

that.map_.mapTypes[that.map_.getMapTypeId()] is undefined  markerclusterer.js:304
你有主意吗


谢谢

我认为maps api已经改变,mapsTypes数组没有maxZoom属性

谷歌似乎已经改变了api中的某些内容。 您可以手动将“群集选项”或“地图选项”中的“最大缩放”值设置为类似16的值,然后再次使用。 如果您有其他层,如Bing Order OSM,您也必须设置其最大缩放值

var clusterOptions = { styles: ClusterStyles, maxZoom: 16 };
markerClusterer = new MarkerClusterer(map, markersArray, clusterOptions);

是的,醒来发现我的也坏了

这里的注释有效,我在初始化中添加了maxZoom:18

     footer_map = new google.maps.Map(document.getElementById('footer_map'), {
      zoom: 1,
      center: new google.maps.LatLng(42, 0),
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      zoomOnClick: true,
      maxZoom: 18
    });

最好的解决方案是切换到api 3.5,等待谷歌的修复。

在第156行的markerclusterer.js中,从

var maxZoom = that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom;
var maxZoom=18

在“单击”群集后显示相同的错误消息

解决方案:

  • 使用谷歌地图的具体版本,而不是最新版本(例如)

  • 更改标记clusterer js-设置固定最大缩放


我用相同的方法修复了它,但略有不同。。更新代码的最佳方式。。此代码将属性扩展回预期的位置

    var that = this;
    google.maps.event.addListener(this.map_, 'zoom_changed', function() {
        try{
           var maxZoom = that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom;
        } catch(Error){ maxZoom = that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom = 20; }
        var zoom = that.map_.getZoom();
        if (zoom < 0 || zoom > maxZoom) return;     

        if (that.prevZoom_ != zoom) {
           that.prevZoom_ = that.map_.getZoom();
           that.resetViewport();
        }
});
var=this;
google.maps.event.addListener(this.map_'zoom_changed',function(){
试一试{
var maxZoom=that.map_u2;.mapTypes[that.map_2;.getMapTypeId()].maxZoom;
}catch(Error){maxZoom=that.map\u.mapTypes[that.map\u.getMapTypeId()].maxZoom=20;}
var zoom=that.map_u2;.getZoom();
如果(缩放<0 | |缩放>最大缩放)返回;
如果(that.prevZoom!=zoom){
that.prevZoom=that.map.getZoom();
重置视口();
}
});

将您的markercluster.js更新至最新版本:


你的问题就会解决

需要更多信息,我们可以看看你的代码吗?我也有同样的问题。官方示例:问题在于,如果我对markerclusterer选项使用maxZoom,则如下所示:var mcOptions={minimumClusterSize:4,maxZoom:5};var markerCluster=新的MarkerClusterer(映射、标记、mcOptions);群集显示,但当我单击它时,它不显示其他群集或我的标记。如果我将maxZoomn设置为5(例如,在我的情况下),群集显示,但当我单击群集时,缩放不起作用,并且标记不显示MaxZoom应至少为10或更多,因为5对于一张地图来说是一个非常小的值。是的,我在5分钟前就做过了,而且很有效!:)(但传感器=false且加载了库)