В OpenLayers увеличьте масштаб всех оверлеев


10

В Openlayers я могу увеличить масштаб всех слоев следующим образом:

map.zoomToExtent();

Я также могу увеличить масштаб ограничительной рамки одного слоя:

map.zoomToExtent(layer_name.getDataExtent());

Есть ли простой способ масштабирования до уровня всех слоев, кроме базового? Другими словами, показывает степень всех оверлеев.

Ответы:


6
  1. цикл по всем вашим слоям
    1. Пропустите базовый слой [согласно вашему требованию]
    2. Используйте bounds.extend (...) для создания API всеобъемлющего объекта bounds
  2. Приблизьтесь к полученному API границ

Я думаю, что это не сработает, так как extends () работает, только если он вызывается с меньшими границами, чем тот, который передается в качестве аргумента.
Пакман

Как я
могу

@imdadhusen почему бы тебе просто не посмотреть документацию? тот же метод. тот же объект. другое пространство имен. openlayers.org/en/v3.3.0/apidoc/ol.extent.html#extend
Вадим

1

как насчет исправления map.restrictedExtent и вызова map.zoomToExtent (map.restrictedExtent) ?


Это просто переместило бы проблему ... Как бы я нашел ограничивающую рамку оверлеев, чтобы создать limitedExtent?
Mr_Chimp

Вы пробовали с ZoomToMaxExtent () - но это, вероятно, увеличит экстент базового слоя, если больше? если это не сработает, вы должны получить экстент для каждого слоя оверлеев и оставить самый большой для исправления limitedExtent.
Симо

Я попытался ZoomToMaxExtend (), и он увеличивает базовый слой. Я упоминал об этом в своем вопросе, но при перечитывании это не очевидно. Сохранение самого большого ограничивающего прямоугольника не обязательно сработает, т. Е. Если два слоя не перекрываются. Я думаю, мне придется как-то объединить ограничивающие рамки каждого слоя, а затем получить ограничивающие рамки полученного объекта ...
Mr_Chimp

Это оно! Что не так сложно ... Но я согласен с вами, удивительно, что такого метода еще не существует (или мы что-то упустили ;-) ..)
simo

Ну, надеюсь, мы что-то упустили! Я оставлю вопрос открытым пока ... на всякий случай!
Mr_Chimp
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.