Как я могу проверить, находится ли маркер в границах или нет, используя Google Maps v3 - PullRequest
39 голосов
/ 06 сентября 2010

Это мой код, я думаю, что он может содержать некоторые ошибки:

        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
    }

Достаточно ли этого кода, чтобы проверить, входят или нет границы?

1 Ответ

112 голосов
/ 06 сентября 2010

Объект LatLngBounds поставляется с методом contains(), который принимает точку LatLng и возвращает истину, если точка оказывается в пределах границ, или ложь, еслиснаружи.

Поэтому, что насчет чего-то вроде следующего?

function check_is_in_or_out(marker){
  return map.getBounds().contains(marker.getPosition());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...