2

我的 MarkerCluster 有问题。

当我是 400 个标记时,出现集群,一切正常。但现在我有超过 600 个标记,并且没有出现集群。

Firebug 显示此错误:

that.map_.mapTypes[that.map_.getMapTypeId()] is undefined  markerclusterer.js:304

你有想法吗?

谢谢

4

8 回答 8

3

Update your markercluster.js to the latest revision: http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js

and your problem will be solved!

于 2011-09-21T16:35:46.133 回答
2

最好的解决方案是切换到 api 3.5 等待谷歌修复。
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.5&sensor=true"></script>

于 2011-09-20T10:46:56.223 回答
1

谷歌似乎在 api 中改变了一些东西。您可以在集群选项或地图选项中手动将 maxZoom 值设置为 16 之类的值,然后它会再次起作用。如果您有其他图层,例如 Bing 或 OSM,您也必须设置它们的 maxZoom 值。

var clusterOptions = { styles: ClusterStyles, maxZoom: 16 };
markerClusterer = new MarkerClusterer(map, markersArray, clusterOptions);
于 2011-09-20T09:20:03.313 回答
0

我以相同的方式修复了它,但略有不同.. 更新代码的最佳方式.. 此代码将属性扩充到预期的位置。

    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();
        }
});
于 2011-09-21T15:30:49.577 回答
0

我认为 maps api 已更改并且 mapsTypes 数组没有 maxZoom 属性

于 2011-09-20T09:08:07.393 回答
0

是的,醒来我的也坏了。

这里的评论有效,我在初始化中添加了 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
    });
于 2011-09-20T09:35:24.520 回答
0

在第 156 行的 markerclusterer.js 中,将代码从

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

var maxZoom = 18;

于 2011-09-20T11:21:36.947 回答
0

在集群上“单击”后出现相同的错误消息。

解决方案:

于 2011-09-20T12:00:30.587 回答