Минимальный масштаб OpenLayers меньше ограничивающей рамки

У меня проблема с osm и openlayers. прежде всего, мой объект карты

var wgs84 = new OpenLayers.Projection("EPSG:4326");
var map = new OpenLayers.Map ('map',
    {
    projection: new OpenLayers.Projection("EPSG:900913"),
    displayProjection: wgs84,
    maxExtent: new OpenLayers.Bounds(-180,-20, 180, 90),
    controls: [
    new OpenLayers.Control.MousePosition(),
    new OpenLayers.Control.PanZoomBar(),
    ]
    }); 

как видите, моя ограничительная рамка заканчивается на -20, поэтому Антарктида должна отображаться.

но я могу уменьшить масштаб, чтобы видеть весь мир, и карта меньше, чем map-div (что составляет 900 * 500).

Есть ли какое-нибудь решение, чтобы исправить это? вы не сможете получить карту меньшего размера, чем позволяет ограничительная рамка.


person ABLX    schedule 03.08.2011    source источник


Ответы (2)


Вы внедрили параметр limitedExtent?

(из документации) limitedExtent

{OpenLayers.Bounds} Ограничьте навигацию по карте до этого предела, где это возможно. Если установлено ненулевое limitedExtent, панорамирование будет ограничено заданными границами. Кроме того, масштабирование до разрешения, отображающего больше, чем ограниченный экстент, приведет к центрированию карты на ограниченном экстенте.

см. пример здесь. уровни масштабирования. Кажется, это отсутствующая функция, о которой часто сообщают, и у которой не так много разрешений.

Я считаю, что в этом посте SO есть некоторые обходные пути, хотя Мин. Макс. уровень масштабирования в OpenLayers

Надеюсь, я чем-то помог.

person Rob Quincey    schedule 03.08.2011

Взгляните на пример, который я сделал на http://beta1234.com.sunflower.arvixe.com/maps/ (сервер немного медленный). Он использует restrictedExtent и ограниченные уровни масштабирования.

person Igor Brejc    schedule 03.08.2011