Переключение базовых слоев, когда пользователь увеличивает масштаб в OpenLayers?

13

У меня есть карта, которая накладывает данные Open Street Map на изображения для Пенсильвании. В качестве базового слоя для дорог (и, в конечном счете, других слоев) у меня есть два базовых слоя - изображения Blue Marble NG и USGS EROS 1ft. Я хотел бы иметь возможность объединить эти два слоя в один объект базовой карты, который автоматически переключается при увеличении масштаба, поскольку нет смысла просматривать 1-футовые изображения для всего состояния или изображения из синего мрамора при увеличении масштаба.

В идеале я хотел бы сделать это на стороне клиента, так как я извлекаю изображения с двух разных сайтов.

Ян Тертон
источник
В этом вопросе есть неработающая ссылка, которая была указана по адресу gis.stackexchange.com/questions/173775/… Жаль, что здесь не был сделан комментарий, чтобы предупредить вас ранее.
PolyGeo

Ответы:

17
  1. Добавьте 2 базовых слоя на карту
  2. Подпишитесь на событие масштабирования карты
  3. Проверьте уровень масштабирования и просто переключите базовую карту для вашего пользователя

Вот пример страницы с обработчиком событий для zoomend - http://www.openlayers.org/dev/examples/events.html .

Вадим
источник
1
Это работает очень хорошо - < ian01.geog.psu.edu/geoserver/www/pa/pa2.html >
Ян Тертон
@iant, есть ли шанс, что я могу заставить тебя вставить фрагмент кода? Я пытаюсь сделать это, и это просто глючит. Благодарность!
В этом ответе есть неработающая ссылка, указанная по адресу gis.stackexchange.com/questions/173775/… Жаль, что здесь не был сделан комментарий, чтобы предупредить вас ранее.
PolyGeo
-1 за единственную неработающую ссылку в 5-летнем ответе? Шутки в сторону? На самом деле меня не волнуют вопросы, но я не могу представить, что администраторы теперь просят всех поддерживать ссылки на внешние ссылки. Обратите внимание, что ответ в пунктах 1, 2, 3 завершен, и ссылки API все еще работают. Если читателю нужно найти образец, я верю, что он может найти его самостоятельно. OL изменился и продвинулся так много за последние 5 лет.
Вадим
0

Другой способ ... используя контроль непрозрачности

Попробуйте этот пример https://github.com/openlayers/ol2/blob/master/examples/layer-opacity.html

комбинация USGS_EDC_Elev_NED_3 (затененный рельеф) и топо-карт с контролем непрозрачности

Работает довольно хорошо.

Mapperz
источник
Не тихий эффект, к которому я стремился, но хороший пример.
Ян Тертон
В этом ответе есть неработающая ссылка, указанная по адресу gis.stackexchange.com/questions/173775/… Жаль, что здесь не был сделан комментарий, чтобы предупредить вас ранее.
PolyGeo
обновить ссылку на источник
GitHub