Đây là JSFiddle Demo:
Tôi cho rằng đây là một cách để làm điều đó. Bạn có thể sử dụng vòng kết nối của Google Map V3 API
để tạo các giới hạn từ điểm trung tâm hoặc vị trí hiện tại của bạn. Bạn có thể chỉ định bán kính của hình tròn tính bằng mét với setRadius(radius:number)
. Với vòng kết nối đã tạo, bạn có thể lặp lại các điểm đánh dấu của mình và xem chúng có nằm trong giới hạn của vòng kết nối hay không bằng cách sử dụng Đối tượng getBounds của vòng kết nối là LatLngBounds
và kiểm tra xem điểm đánh dấu có bị ràng buộc hay không.
Tôi đã tiếp tục và tạo một bản trình diễn nhỏ có năm điểm trên bản đồ và khi bạn nhấp vào nút tạo vòng tròn, nó sẽ biến điểm đánh dấu đầu tiên thành điểm trung tâm và vẽ một vòng tròn có bán kính 5000 và lọc ra các điểm đánh dấu không bị ràng buộc bằng cách sử dụng phương pháp được mô tả ở trên:
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);
}