我想通過GeoServer的WMS使用OpenLayers顯示地圖。我想知道OpenLayers如何計算BBOX座標以便用js正確設置它們,並避免發佈錯誤響應。我沒有OpenStreetMap和GoogleStreetMap的這個問題。OpenLayers如何計算邊界框座標?
這是我在函數中使用的JavaScript代碼:
function myfunc(display, url){
var params = {};
params.layers = 'Italy';
params.format = 'image/jpeg';
params.transparent = true;
var options = {};
options.projection='EPSG:900913';
options.displayProjection="EPSG:4326";
options.maxExtent= new OpenLayers.Bounds(-20037508.34, 20037508.34,20037508.34,20037508.34);
options.isBaseLayer = true;
return new OpenLayers.Layer.WMS(display, url, params, options);
}
這是請求的GeoServer:
http://mydomain:myport/geoserver/gwc/service/wms?LAYERS=Italy&FORMAT=image%2Fpng&TRANSPARENT=true&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A900913&BBOX=1384430.175625,5152466.50375,1384430.87875,5152467.206875&WIDTH=256&HEIGHT=256
這是我從GeoServer的得到響應:
400:分辨率(0.00274658203125)是 不與最接近的網格的5.0% 分辨率(0.0023326729820109904)
這是要做到這一點的文檔:http://trac.osgeo.org/openlayers/wiki/SettingZoomLevels – tonio 2011-05-23 10:11:40
我已經檢查了OpenLayers API,但我無法理解如何確定正確的分辨率值。我認爲應該有一個公式... – 2011-05-24 08:45:06