0

我正在使用谷歌地图 fitBounds,然后我使用 map.setZoom 放大一个级别(在谷歌找到适合我的标记的最佳缩放级别之后),然后我想检查我的标记在视口中是否可见,如何我可以这样做吗?似乎 map.getBounds().contains 不起作用,请看一下这个小提琴: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());
});
4

1 回答 1

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/

于 2012-12-08T20:30:23.050 回答