我遇到了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)。
有没有解决办法?你不应该得到比边界框允许的更小的地图。
答案 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
和受限制的缩放级别。