如何在谷歌地图 v3 中显示/隐藏 MarkerCluster?
我需要为不同的 mapType
提供不同的标记,并且我将它们推送到 MarkerClusterer。
我用以下命令“隐藏”标记
cluster.set("map", null);
cluster.resetViewport();
cluster.redraw();
并用以下命令“显示”它们:
cluster.set("map", MAP);
cluster.resetViewport();
cluster.redraw();
问题是 MarkerClusterer 似乎不喜欢 set("map", null)
;它抛出错误 TypeError: Object #;没有方法“删除”
。我怎样才能以正确的方式显示/隐藏它们?
I need to have different markers for different mapType
s, and I'm pushing them to a MarkerClusterer.
I "hide" the markers with:
cluster.set("map", null);
cluster.resetViewport();
cluster.redraw();
And "show" them with:
cluster.set("map", MAP);
cluster.resetViewport();
cluster.redraw();
The problem is that MarkerClusterer seems to not like set("map", null)
; it throws the error TypeError: Object #<a MarkerClusterer> has no method 'remove'
. How can I show/hide them the proper way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在 Javascript API v3 中,这样说就足够了:
如果将地图设置回现有地图对象,则簇将重新出现。
另外,我建议不要将您的集群器命名为“集群”,就像您的示例中那样。 MarkerClusterer 包含 Cluster 对象,它们是实际的聚类标记,而不是 ClusterER 本身。
In the Javascript API v3 it is sufficient to say:
If you set your map back to the existing map object, the clusters will reappear.
Also, I would suggest not to name your Clusterer 'cluster', like in your example. The MarkerClusterer contains Cluster objects, which are the actual clustered markers and not the ClusterER itself.
清除集群的优雅方式
Elegant way to clear the cluster
这是一个更完整的解决方案:
在 .html 添加:
在 .js 添加:
显示集群:
隐藏集群:
最后,我需要对markerclusterer.js进行以下修补程序:
希望这会有所帮助
Here is a more complete solution:
in .html add:
in .js add:
to show the clusters:
to hide the clusters:
finally, I needed the folowing patches to markerclusterer.js:
hope this helps
这是我的代码,用于轻松显示/隐藏地图上的集群(针对当前版本的 Maps API 和 JS-Cluster-Renderer 进行了更新)。谢谢加比。
Here is my code to easily show/hide clusters on the map (updated for the current versions of Maps API and JS-Cluster-Renderer). Thanks Gabi.
我通过一点猴子补丁和一点黑客努力解决了这个问题。我仍在等待一个明确的答案,但这是我问题的解决方案,所以我也发布了这个:
I fought my way into solving this by a little monkeypatching and a little hack. I'm still waiting for a clean answer, but this is a solution to my problem, so I'm also posting this: