OpenLayers最小缩放小于边界框

时间:2011-08-03 14:08:18

标签: javascript openlayers openstreetmap

我遇到了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,所以应该显示antarctis。

但是我可以缩小以便我可以看到整个世界,并且地图小于map-div(900 * 500)。

有没有解决办法?你不应该得到比边界框允许的更小的地图。

2 个答案:

答案 0 :(得分:0)

您是否实施了restrictedExtent参数?

(来自文档) restrictedExtent

{OpenLayers.Bounds}尽可能将地图导航限制在此范围内。如果设置了非null的restrictedExtent,则将平移限制为给定的边界。此外,缩放到显示超出限制范围的分辨率将使地图在限制范围内居中。

See an example here - 这会停止平移超出范围,但不会重写缩放级别。这似乎是一个报道很多的缺失功能,但没有多少决议。

我相信这篇SO帖子虽然有Min Max Zoom level in OpenLayers

,但仍有一些解决方法

希望我得到了一些帮助。

答案 1 :(得分:0)

看看我在http://beta1234.com.sunflower.arvixe.com/maps/做的样本(服务器有点慢)。它使用restrictedExtent和受限制的缩放级别。