这是我的代码,我认为它可能有一些错误:
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
}
此代码是否足以检查边界是否进入?
答案 0 :(得分:111)
LatLngBounds
对象附带一个contains()
方法,该方法取LatLng
点,如果该点恰好在边界内,则返回true;如果在外,则返回false。
因此,如下所示呢?
function check_is_in_or_out(marker){
return map.getBounds().contains(marker.getPosition());
}