This is my code, I think it may has some mistakes:
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
}
Is this code enough to check the bounds is in or out?
The
LatLngBounds
object comes with acontains()
method which takes aLatLng
point and returns true if the point happens to be within the bounds, or false if outside.Therefore, what about something like the following?