2014-04-08 27 views
20

Tôi có một bản đồ tờ rơi và mở rộng. Làm thế nào tôi có thể tự động nhận được lat/long của các cạnh của bản đồ (sau khi phóng to/thu nhỏ + panning)?Nhận hộp giới hạn của bản đồ tờ rơi có thể nhìn thấy?

+1

Bạn có phải là giới hạn/phạm vi của bản đồ không? Hoặc mỗi lat dài chạy xung quanh biên giới của các phần mở rộng? Nếu bạn chỉ muốn có được giới hạn, bạn có thể gọi map.getBounds() khi kéo. map.on ('dragend', myFunctionThatGetsMapBounds()) Tôi sẽ thử một cái gì đó như thế này để có được giới hạn mỗi khi bản đồ được di chuyển. Tương tự có thể được thực hiện cho zoomend. – Ju66ernaut

Trả lời

29

Đó là, như bạn có thể đoán:

map.getBounds(); 

Nếu bạn muốn nhận được các giới hạn sau khi panning và phóng to, sử dụng events, như

map.on('moveend', function() { 
    alert(map.getBounds()); 
}); 
7

Câu trả lời ở trên là đúng, nhưng không phải rất hữu ích và không may, tài liệu tờ rơi không cung cấp nhiều chi tiết về cuộc gọi getBound().

Nếu bạn thêm video này vào hàm init bản đồ của bạn, bạn có thể xem dữ liệu bản đồ hiển thị:

map.on('dragend', function onDragEnd(){ 
    var width = map.getBounds().getEast() - map.getBounds().getWest(); 
    var height = map.getBounds().getNorth() - map.getBounds().getSouth(); 

    alert (
     'center:' + map.getCenter() +'\n'+ 
     'width:' + width +'\n'+ 
     'height:' + height +'\n'+ 
     'size in pixels:' + map.getSize() 
    )}); 

Lưu ý rằng kích thước là kích thước pixel của cửa sổ bản đồ, nơi các giới hạn được các quy mô kích thước nội bộ. Hãy thử thu phóng và bạn sẽ thấy rằng kích thước vẫn không đổi, nhưng chiều cao và tăng gấp đôi cho mỗi cấp độ thu phóng.

Có một loạt các phương pháp sống dưới đối tượng LatLngBounds, vì vậy bạn có thể tìm thấy một trong các cuộc gọi ở đó có thể cung cấp cho bạn bất kỳ thông tin nào bạn đang tìm kiếm.

Hy vọng rằng sẽ giúp ai đó ra ngoài.

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