यहां JSFiddle डेमो:
मुझे लगता है कि ऐसा करने का यह एक तरीका है। आप Google मैप V3 API's सर्कल
का इस्तेमाल कर सकते हैं अपने केंद्र बिंदु या वर्तमान स्थान से सीमाएँ बनाने के लिए। आप 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);
}