Ограничение панорамирования на карте Openlayers

Ограничение панорамирования на карте Openlayers не имеет в виду вращение. Поэтому при повороте карты ограничение не поворачивается.

Эти два квадрата показывают фактическую и желаемую протяженность:

введите здесь описание изображения

Я определил ограничение с опцией «степень» следующим образом:

var baseView = new ol.View({
    center: [241160, 5069100],
    zoom: 11,
    extent: [226838, 5084100, 255700, 5055200]
});

Вот рабочий пример на jsfiddle для тестирования этого поведения.

Как я могу реализовать ограничение панорамирования с учетом вращения?


person geraldo    schedule 02.10.2015    source источник
comment
Ваш JSFiddle, кажется, демонстрирует, что вращение карты действительно вращает ограниченную область, т. е. углы области находятся в одних и тех же географических точках независимо от поворота на экране. Не знаете, почему вы ожидаете какого-либо другого поведения?   -  person kryger    schedule 02.10.2015
comment
Вы правы, ограниченная область имеет тот же поворот, что и вид. Проблема в том, что мне нужно ограничить панорамирование областью, которая соответствует углу, под которым пользователь видит карту, например второй (горизонтальный) квадрат, который я рисую на карте. Я думал, что это стандартное поведение...   -  person geraldo    schedule 02.10.2015


Ответы (1)


Не уверен, что понимаю ваш вопрос, если вы установите maxExtent в своем слое OSM, не будет ли он ограничен этой областью? Это то что ты хочешь?

new ol.layer.Tile({
        source: new ol.source.OSM(),
        extent: maxExtent
    })
person Fbma    schedule 02.10.2015
comment
Определение maxExtent в слое ограничивает только рендеринг (слой не будет рендериться за пределами этого экстента), но я хочу ограничить панорамирование на карте. - person geraldo; 02.10.2015
comment
Делает ли 'map.setOptions ({restrictedExtent: maxExtent});' подходит тебе? - person Fbma; 02.10.2015
comment
Это было правильно для OL2, в OL3 это делается с опцией экстента в представлении. Но проблема в том, что экстент не учитывает вращение, как вы можете видеть в связанном jsfiddle. - person geraldo; 02.10.2015