在 setZoom 之后检测可见的谷歌地图标记
Posted
技术标签:
【中文标题】在 setZoom 之后检测可见的谷歌地图标记【英文标题】:detecting visible google map markers after setZoom 【发布时间】:2012-11-26 15:11:03 【问题描述】:我正在使用 google map fitBounds,然后我使用 map.setZoom 放大一个级别(在 google 找到适合我的标记的最佳缩放级别之后),然后我想检查我的标记在视口中是否可见或不,我该怎么做? map.getBounds().contains 好像不行,请看这个fiddle:fiddle
我想检查我的标记是否可见:
google.maps.event.addListenerOnce(map, "zoom_changed", function()
map.setZoom(map.getZoom()+2);
if( map.getBounds().contains("35.700592","51.394773"))
alert('ok');
but there seems to be an error
//alert("the zoom level is now "+map.getZoom());
);
【问题讨论】:
【参考方案1】:为什么你认为"35.700592","51.394773"
是 google.maps.LatLng?它是用逗号分隔的两个字符串。
这行不通:
google.maps.event.addListenerOnce(map, "zoom_changed", function()
map.setZoom(map.getZoom()+2);
if( map.getBounds().contains("35.700592","51.394773"))
alert('ok');
);
这是使用“包含”(带有 LatLng 对象)的正确方法:
google.maps.event.addListenerOnce(map, "zoom_changed", function()
map.setZoom(map.getZoom()+2);
if( map.getBounds().contains(new google.maps.LatLng(35.700592,51.394773)))
alert('ok');
);
您可能想要创建一个包含标记的数组并在标记上使用 .getPosition()
http://jsfiddle.net/Npu36/10/embedded/result/
【讨论】:
以上是关于在 setZoom 之后检测可见的谷歌地图标记的主要内容,如果未能解决你的问题,请参考以下文章