Her er JSFiddle-demoen:
Jeg formoder, at dette er en måde at gøre det på. Du kan bruge cirklen for Google Map V3 API
for at oprette grænserne fra dit midtpunkt eller nuværende placering. Du kan angive radius af cirklen i meter med setRadius(radius:number)
. Med den oprettede cirkel kan du gå gennem dine markører og se, om de er inden for cirklens grænse ved hjælp af Cirkels getBounds-objekt, som er et LatLngBounds
og kontroller, om markøren er inden for bunden eller ej.
Jeg gik videre og lavede en lille demo, der har fem punkter på et kort, og når du klikker på knappen Opret cirkel, gør den den første markør til midtpunktet og tegner en cirkel med en radius på 5000 og filtrerer de markører, der er ikke med i bundet ved hjælp af metoden beskrevet ovenfor:
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);
}