我的MarkerClusterer存在问题。
当我有400个标记时,群集出现,全部工作。 但是现在我有超过600个标记,并且没有出现聚类。
Firebug显示此错误:
that.map_.mapTypes[that.map_.getMapTypeId()] is undefined markerclusterer.js:304
有你的想法吗?
由于
答案 0 :(得分:3)
将markercluster.js更新为最新版本: http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js
你的问题将会解决!
答案 1 :(得分:2)
最好的解决方案是切换到api 3.5等待谷歌修复
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.5&sensor=true"></script>
答案 2 :(得分:1)
var clusterOptions = { styles: ClusterStyles, maxZoom: 16 };
markerClusterer = new MarkerClusterer(map, markersArray, clusterOptions);
答案 3 :(得分:0)
我认为地图api已更改且mapsTypes数组没有maxZoom属性
答案 4 :(得分: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
});
答案 5 :(得分:0)
在第156行的markerclusterer.js中更改代码
var maxZoom = that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom;
到var maxZoom = 18;
答案 6 :(得分:0)
群集上的“点击”后出现相同的错误消息。
解决方案:
使用具体版本的Google地图,而不是最新版本(例如http://maps.google.com/maps/api/js?v=3.5&sensor=true)
更改标记群集js - 设置固定的maxZoom
答案 7 :(得分: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();
}
});