Trong OpenLayers thu phóng theo phạm vi của tất cả các lớp phủ


10

Trong Openlayers tôi có thể phóng to hộp giới hạn của tất cả các lớp như thế này:

map.zoomToExtent();

Tôi cũng có thể phóng to hộp giới hạn của một lớp:

map.zoomToExtent(layer_name.getDataExtent());

Có một cách dễ dàng để phóng to đến mức của tất cả các lớp ngoại trừ lớp cơ sở? Nói cách khác cho thấy phạm vi của tất cả các lớp phủ.

Câu trả lời:


6
  1. vòng lặp trên tất cả các lớp của bạn
    1. Bỏ qua lớp cơ sở [theo yêu cầu của bạn]
    2. Sử dụng bound.extend (...) để xây dựng API đối tượng giới hạn bao gồm tất cả
  2. Thu phóng đến giới hạn API kết quả

Tôi nghĩ rằng điều này sẽ không hoạt động, bởi vì extends () chỉ hoạt động nếu nó được gọi trên một giới hạn nhỏ hơn so với giới hạn mà nó được thông qua dưới dạng đối số.
pakman

Làm cách nào tôi có thể đạt được điều tương tự bằng API OpenLayer 3.x
imdadhusen

@imdadhusen tại sao bạn không tìm tài liệu? cùng phương pháp. cùng đối tượng. không gian tên khác nhau. openlayers.org/en/v3.3.0/apidoc/ol.extent.html#extend
Vadim

1

Còn việc sửa bản đồ.restrictedExtent và gọi map.zoomToExtent (map.restrictedExtent) thì sao?


Điều đó sẽ chỉ giải quyết vấn đề ... Làm thế nào tôi có thể tìm ra hộp giới hạn của các lớp phủ để tạo raExtent bị hạn chế?
Mr_Chimp

bạn đã thử với ZoomToMaxExtent () - nhưng nó có thể sẽ thu phóng đến phạm vi lớp cơ sở nếu lớn hơn? nếu nó không hoạt động, bạn phải truy xuất phạm vi cho từng lớp trứng và giữ lớp lớn nhất để sửa hạn chếExtent.
simo

Tôi đã thử ZoomToMaxExtend () và nó phóng to lớp cơ sở. Tôi đã đề cập điều này trong câu hỏi của tôi nhưng đọc lại nó không rõ ràng. Giữ hộp giới hạn lớn nhất sẽ không nhất thiết phải hoạt động - tức là nếu hai lớp không trùng nhau. Tôi đoán bằng cách nào đó tôi sẽ phải kết hợp các hộp giới hạn của mỗi lớp và sau đó lấy hộp giới hạn của đối tượng kết quả ...
Mr_Chimp

Đó là nó! Điều đó không khó lắm ... Nhưng tôi đồng ý với bạn, thật đáng ngạc nhiên khi một phương pháp như vậy chưa tồn tại (hoặc chúng tôi đã bỏ lỡ điều gì đó ;-) ..)
simo

Vâng hy vọng chúng tôi đã bỏ lỡ một cái gì đó! Bây giờ tôi sẽ để lại câu hỏi ... chỉ trong trường hợp!
Mr_Chimp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.