Zde je Ukázka JSFiddle:
Předpokládám, že toto je jeden způsob, jak to udělat. Můžete použít kruh Google Map V3 API
pro vytvoření hranic od vašeho středového bodu nebo aktuální polohy. Poloměr kruhu v metrech můžete určit pomocí setRadius(radius:number)
. S vytvořeným kruhem můžete procházet značkami a zjistit, zda jsou v rámci kruhu pomocí Objekt getBounds Circle, který je LatLngBounds
a zkontrolujte, zda je značka uvnitř hranice nebo ne.
Pokračoval jsem a vytvořil malou ukázku, která má na mapě pět bodů, a když kliknete na tlačítko vytvořit kruh, udělá z první značky středový bod a nakreslí kruh o poloměru 5000 a odfiltruje značky, které nejsou s vázané pomocí výše popsané metody:
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);
}