【问题标题】:How can I check the marker is or isn't in the bounds using google maps v3如何使用谷歌地图 v3 检查标记是否在边界内
【发布时间】:2011-04-08 14:13:07
【问题描述】:

这是我的代码,我认为它可能有一些错误:

        var bounds_array;
        google.maps.event.addListener(map,'bounds_changed', function (){
            var bounds_=map.getBounds();
            if(bounds_){
                var leftBottom=[bounds_.getSouthWest().lat(),bounds_.getSouthWest().lng()]
                var rightTop=[bounds_.getNorthEast().lat(),bounds_.getNorthEast().lng()]
                bounds_array=[leftBottom,rightTop];
            }
        });

    function check_is_in_or_out(marker){
        var leftBottom=bounds_array[0],rightTop=bounds_array[1];
        var marker_p=[marker.getPosition().lat(),marker.getPosition().lng()];
        if(marker_p[0]<leftBottom[0]||marker_p[0]>rightTop[0]||
            marker_p[1]<leftBottom[1]||marker_p[1]>rightTop[1])return 0;//0 is out
        else return 1;//1 is in
    }

这段代码是否足以检查边界是进还是出?

【问题讨论】:

    标签: javascript google-maps google-maps-api-3


    【解决方案1】:

    LatLngBounds 对象带有一个 contains() 方法,该方法接受一个 LatLng 点,如果该点恰好在边界内,则返回 true,如果在边界外,则返回 false。

    因此,像下面这样的东西呢?

    function check_is_in_or_out(marker){
      return map.getBounds().contains(marker.getPosition());
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-03
      • 2010-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多