- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一张 map ,上面有根据数据库中的值以编程方式放置的标记。当您单击标记时,它将转到该位置的详细信息页面。
我的问题是,本地图充分缩小时,彼此足够接近的标记会显示为单个标记,实际上隐藏了一些标记。 有没有办法以编程方式判断一个标记是一组标记的一部分还是被其他标记隐藏/覆盖?
我的目的是为每个动态生成的标记执行类似的操作:
marker.addListener('click', function() {
// if marker is not hiding any other markers
window.location.href = markerURL;
// else if it is hiding markers/is part of a group of markers
map.setZoom(15);
map.setCenter(marker.getPosition());
});
我已经检查了Marker API documentation ,但似乎找不到任何有用的方法。在我的例子中,getClickable
和 getVisible
始终返回 true
,无论一个标记是否被另一个标记覆盖。有什么建议么?谢谢!
最佳答案
我最终选择了 MarkerClusterer解决我的问题。我希望有一个更简单的解决方案,但事实证明这毕竟非常简单。
我唯一需要添加到现有标记生成代码中的是一个列表:varmarkers = [];
,然后我调用markers.push(marker);
我所有的标记。最后一步是创建一个新的 MarkerClusterer
对象:
var markerCluster = new MarkerClusterer(map, markers, options);
MarkerClusterer 或多或少会处理其余部分(options
参数是可选的,但我用它来设置图像的路径并设置最大缩放级别)。现在,在以前我的标记彼此堆叠的情况下,无法在某些缩放级别查看或单击某些标记,而是看到一个簇,其中的数字表示该簇中标记的数量。单击群集图标将进一步放大,显示我的标记。
所有这一切都是按照 simple usage example 完成的在他们的 github 页面上,但他们有 pretty good documentation也。为了使其正常工作,我的大部分时间实际上都花在设计群集图标以匹配我网站的配色方案上......
关于javascript - 谷歌地图 API : how to tell if a marker is hidden by another marker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38622450/
我是一名优秀的程序员,十分优秀!