Как установить maxResolution в зависимости от размера контейнера? - PullRequest
0 голосов
/ 26 июня 2018

Я создал карту открытых слоев, минимальный уровень масштабирования которой должен быть установлен на 2.

Это прекрасно работает, если <div>, содержащий карту, имеет размер округления около 1000 px x 750 px:

enter image description here

Теперь у нас есть размеры контейнеров, которые сильно меняются. Таким образом, получается, что у нас есть контейнер div, то есть, скажем, 700px x 300px, что приводит к:

enter image description here

Теперь я хочу иметь тот же вид карты, что и на первом изображении, также во втором, меньшем размере контейнера / области просмотра.

Обычно я бы настраивал уровень масштабирования, но я должен отключить панорамирование карты, если установлен минимальный масштаб.

Я ожидаю, что уровень масштабирования будет независим от размера контейнера, но это не так, поэтому мне нужно найти способ ограничить отображаемые данные в зависимости от maxResolution, а также соответственно ограничить панорамирование.

Теперь я не мог найти подходящий способ сделать это. Кто-нибудь может предоставить мне функцию или формулу того, как я могу вычислить свойство maxResolution для карты openlayers (представление), чтобы отображаемый экстент карты всегда был одинаковым, независимо от размера контейнера / цели (div)?

1 Ответ

0 голосов
/ 26 июня 2018

вы не ищете какой-либо способ установить maxResolution или minResolution

это то, что вам нужно http://openlayers.org/en/latest/apidoc/ol.View.html#fit

соответствует вашей карте до

minLongitude: -80
maxLongitude: 80
minLatitude: -180
maxLatitude: 180

Пример: настройте по вашему желанию первый массив => [minx, miny, maxx, maxy]. Мои координаты в EPSG:4326!

map.getView().fit([-80, -180, 80, 180], { padding: [0, 0, 0, 0], size: map.getSize() });

это один из способов сделать это, если вам нужен пример или вы не поняли, просто спросите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...