2012-03-19 36 views
15

Chúng tôi có bộ lọc tìm kiếm ở xa. Nó có chế độ xem bản đồ cho phép đặt dấu cơ sở và hộp nhập văn bản cho phép nhập khoảng cách tính bằng ki lô mét.Cách các vòng kết nối trên bản đồ của Google phù hợp với bản đồ

Sau đó, trong chế độ xem, chúng tôi sử dụng circle để hiển thị khoảng cách này trên bản đồ.

Câu hỏi, làm thế nào tôi có thể phóng to bản đồ để nó khớp với hình tròn?

Trả lời

38

A google.maps.Circle có phương thức getBounds() trả về LatLngBounds vòng kết nối. Bạn có thể sử dụng giới hạn này như là đối số cho google.maps.Map.fitBounds()

Nếu sử dụng một vòng tròn, bạn có thể làm điều này:

map.fitBounds(circle.getBounds()); 

... ở phần cuối của init chức năng.

http://jsfiddle.net/doktormolle/MHLjy/

+0

này đơn giản. Cảm ơn bạn. Tôi đã sử dụng map.fitBounds() nhưng không nhận thấy circule có getBounds. Rất tốt :) –

+0

Cảm ơn rất tốt –

15

Đối với nhiều vòng tròn sử dụng đoàn thay vì mở rộng:

var bounds = new google.maps.LatLngBounds(); 

$.each(circles, function(index, circle){ 
    bounds.union(circle.getBounds()); 
}); 

map.fitBounds(bounds); 
+1

Rất tốt. Tôi đã sử dụng điều này để đảm bảo rằng * ít nhất * vòng tròn bán kính tìm kiếm được bao hàm, sau đó mở rộng giới hạn cho bất kỳ điểm đánh dấu nào xa hơn với latlngBounds.extend (marker.getPosition()) – Jon

Các vấn đề liên quan