Qui la JSFiddle Demo:
Suppongo che questo sia un modo per farlo. Puoi utilizzare la cerchia dell'API di Google Map V3
per creare i limiti dal punto centrale o dalla posizione corrente. Puoi specificare il raggio del cerchio in metri con setRadius(radius:number)
. Con il cerchio creato puoi scorrere i tuoi indicatori e vedere se sono all'interno del limite del cerchio utilizzando Oggetto getBounds di Circle che è un LatLngBounds
e controlla se l'indicatore è entro il limite o meno.
Sono andato avanti e ho creato una piccola demo che ha cinque punti su una mappa, e quando fai clic sul pulsante Crea cerchio, il primo marcatore diventa il punto centrale e disegna un cerchio con un raggio di 5000 e filtra i marcatori che non sono vincolati utilizzando il metodo sopra descritto:
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);
}