【问题标题】:strange issue with google maps and marker clusterer when zooming in放大时谷歌地图和标记聚类器的奇怪问题
【发布时间】:2013-09-21 01:53:31
【问题描述】:

我正在使用 google maps api v3 以及来自这个 url (http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclustererplus/2.0.9/src/markerclusterer_packed.js) 的标记集群

现在我的问题是:

我有两个指针映射到完全相同的纬度和经度。标记聚类器自然会显示一个蓝色气泡,上面有数字 2。但是,当我在放大后单击蓝色气泡时,蓝色的cluser图标消失并且没有显示任何指针。

当这种情况发生时,我的 zoomChanged 甚至也被触发并提醒我缩放级别为 49,然后再次触发并提醒正确的缩放级别为 20。

【问题讨论】:

  • 你的代码是什么样的?或者您能否提供一个 jsfiddle(或实时地图)的链接,该链接展示了该问题以及如何重现该问题的说明?
  • 这实际上是很多具有多层多边形的代码,但标记和聚类是相当标准的。我做标准 mc = new MarkerClusterer(map, markers);并添加通过它的标记。除非在同一位置有两个指针,否则它工作得很好。即具有完全相同地址的两个标记。群集图标不会在另一个指针之上显示,而是会在单击几次后消失。
  • 你试过most recent version of MarkerClustererPlus(目前看起来像2.0.16)吗?
  • 不幸的是,2.0.16 出现了同样的问题
  • 我建议你调查一下你的实现和我的实现之间的差异。

标签: javascript google-maps google-maps-api-3 google-maps-markers markerclusterer


【解决方案1】:

您需要指定 maxZoom 以显示标记。

来自the documentation

maxZoom | number | The maximum zoom level at which clustering is enabled or null if clustering is to be enabled at all zoom levels. The default value is null.
【解决方案2】:

接受的答案对我不起作用,因为我们的项目要求标记聚类器在所有缩放级别都可见。使用Marker Clusterer 而不是Marker Clusterer Plus 插件可以解决这个问题,但由于其他因素而无法选择。我最终做的是在将zoomOnClick 选项设置为false 后手动处理点击事件:

var clusterer = new MarkerClusterer(map, [], {
  zoomOnClick: false
});

google.maps.event.addListener(clusterer, 'click', function (cluster) {
  map.panTo(cluster.getCenter());
  map.set('zoom', map.get('zoom') + 2);
});

【讨论】:

    猜你喜欢
    • 2012-06-04
    • 2020-09-26
    • 2018-07-23
    • 2012-12-17
    • 2013-01-08
    • 2014-04-05
    • 1970-01-01
    • 2013-12-09
    相关资源
    最近更新 更多