2011-08-03 110 views
0

我遇到了osm和openlayers的问题。 首先,我的地图对象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应显示。

但我能够缩小以便我可以看到整个世界,并且地图比地图div(它是900 * 500)更小。

有没有解决方案来解决它?您应该无法获得比边界框允许的更小的地图。

回答

0

您是否实施了restrictedExtent参数?

(来自文档) restrictedExtent

{OpenLayers.Bounds}限制地图导航到这个程度,其中可能的。如果设置了非null restrictedExtent,则平移将被限制在给定范围内。另外,缩放至显示超出限制范围的分辨率将使地图位于受限范围内。

See an example here - 这会停止您超出范围的平移但不会缩放缩放级别。这似乎是一个大量报告缺少的功能,没有很多解决方案。

我相信这SO后有一定的变通办法它虽然Min Max Zoom level in OpenLayers

希望我已经有了一些帮助。