我正在使用最新版本的MarkerClusterer和Google Maps API v3,我想我发现了一个错误!
我的谷歌地图minZoom设置为1.从1级缩小到任何级别,然后返回1就可以了。当我尝试从1级缩小到0级时会看到错误。
当我点击从第1级缩小到第0级时,gMap用户界面不允许按预期进行缩放,但我的所有markerClusters都会消失,当我向下缩放到第2级并返回时它们会重新出现到1级。
我已在Google Maps API v3的Google网页上发布此内容,但到目前为止没有回复(截至今天已过了一周)。
非常感谢任何帮助!
答案 0 :(得分:3)
这是Maps-API中的一个错误,而不是markerClusterer中的错误,但您可以在markerClusterer.js中修复它
当你(尝试)将缩放设置为0时,我不确定你点击的位置(当我使用变焦控制时,我的问题不会发生),但是当我使用缩放设置时,它会发生map.setZoom(0)
问题:API报告缩放为0,但这是不正确的,因为缩放将设置为1(minZoom)。
<强>修正:强>
替换marcerclusterer.js的这一部分:
// Add the map event listeners
var that = this;
google.maps.event.addListener(this.map_, 'zoom_changed', function() {
var zoom = that.map_.getZoom();
if (that.prevZoom_ != zoom) {
that.prevZoom_ = zoom;
that.resetViewport();
}
});
......那个:
// Add the map event listeners
var that = this;
google.maps.event.addListener(this.map_, 'zoom_changed', function() {
var zoom = that.map_.getZoom(),
minZoom=that.map_.minZoom||0,
maxZoom=Math.min(that.map_.maxZoom||100,
that.map_.mapTypes[that.map_.getMapTypeId()].maxZoom);
zoom=Math.min(Math.max(zoom,minZoom),maxZoom);
if (that.prevZoom_ != zoom) {
that.prevZoom_ = zoom;
that.resetViewport();
}
});