Ето Демонстрацията на JSFiddle:
Предполагам, че това е един от начините да го направите. Можете да използвате кръга на API на Google Map V3
за да създадете граници от вашата централна точка или текущо местоположение. Можете да посочите радиуса на окръжността в метри с setRadius(radius:number)
. Със създадения кръг можете да преглеждате маркерите си и да видите дали те са в границите на кръга, като използвате Обект getBounds на Circle, който е 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);
}