Aquí la demostración de JSFiddle:
Supongo que esta es una forma de hacerlo. Puede usar el círculo de la API de Google Map V3
para crear los límites desde su punto central o ubicación actual. Puede especificar el radio del círculo en metros con setRadius(radius:number)
. Con el círculo creado, puede recorrer sus marcadores y ver si están dentro del límite del círculo usando Objeto getBounds de Circle que es un LatLngBounds
y verifique si el marcador está dentro del límite o no.
Seguí adelante y creé una pequeña demostración que tiene cinco puntos en un mapa, y cuando haces clic en el botón Crear círculo, hará que el primer marcador sea el punto central y dibuje un círculo con un radio de 5000 y filtre los marcadores que no están dentro del límite utilizando el método descrito anteriormente:
function createRadius(dist) {
var myCircle = new google.maps.Circle({
center: markerArray[markerArray.length - 1].getPosition(),
map: map,
radius: dist,
strokeColor: "#FF0000",
strokeOpacity: 0.8,
strokeWeight: 2,
fillColor: "#FF0000",
fillOpacity: 0.35
});
var myBounds = myCircle.getBounds();
//filters markers
for(var i=markerArray.length;i--;){
if(!myBounds.contains(markerArray[i].getPosition()))
markerArray[i].setMap(null);
}
map.setCenter(markerArray[markerArray.length - 1].getPosition());
map.setZoom(map.getZoom()+1);
}