Вот демоверсия JSFiddle:
Полагаю, это один из способов сделать это.Вы можете использовать круг Google Map V3 API , чтобы создать границы от вашей центральной точки или текущего местоположения.Вы можете указать радиус круга в метрах с помощью setRadius(radius:number)
.С созданным кругом вы можете перебрать свои маркеры и посмотреть, находятся ли они в пределах круга, используя объект getBounds круга, который является LatLngBounds , и проверить, находится ли маркер внутри границы или нет.
Я пошел дальше и создал маленькую демонстрацию с пятью точками на карте, и когда вы нажмете кнопку «Создать круг», она сделает первый маркер центральной точкой, нарисует круг с радиусом 5000 и отфильтрует маркеры, которыене связаны с использованием описанного выше метода:
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);
}