2011-08-03 141 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

希望我已經有了一些幫助。