【问题标题】:detecting visible google map markers after setZoom在 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());
});

【问题讨论】:

    标签: google-maps


    【解决方案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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-23
      • 2010-10-28
      • 2013-06-26
      • 2017-05-27
      • 2014-07-04
      • 2023-03-16
      • 1970-01-01
      相关资源
      最近更新 更多