Aqui a JSFiddle Demo:
Suponho que esta seja uma maneira de fazê-lo. Você pode usar o círculo da API do Google Map V3 para criar os limites do seu ponto central ou localização atual. Você pode especificar o raio do círculo em metros com
setRadius(radius:number)
. Com o círculo criado, você pode percorrer seus marcadores e ver se eles estão dentro do limite do círculo usando O objeto getBounds do Circle que é um LatLngBounds
e verifique se o marcador está dentro do limite ou não. Eu fui em frente e criei uma pequena demonstração que tem cinco pontos em um mapa, e quando você clica no botão criar círculo, ele faz o primeiro marcador o ponto central e desenha um círculo com um raio de 5000 e filtra os marcadores que não estão vinculados usando o método descrito acima:
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);
}