2015-11-05 60 views
3

我用OpenLayers3創建了一個包含兩層的地圖。第一層是開放式街道地圖圖層,第二層是地圖服務器提供的WMS圖層。WMS圖層由地圖服務器在OL3中渲染不正確

問題-當我渲染第一層它正在渲染正常沒有問題。但是當我渲染第二層(由地圖服務器提供)時,渲染不正確意味着它不適合其容器,並且在位置方面與第一層不同步。請參閱地圖this snapshot以瞭解更多信息。在快照頂層是由地圖服務器提供的wms層。

enter image description here

而且當我縮放或移動地圖然後兩層都正常工作但幾秒鐘的延遲後的第二層(從地圖服務器WMS層)再次切換回至其初始位置(位置這在上面附加的快照中顯示)。

這是我用來消耗wms服務的代碼。

var layer = new ol.layer.Image({ 
    source: new ol.source.ImageWMS({ 
      url: 'http://localhost:19090/rasters/world/wms', 
      params: { 
       'LAYERS': 'world', 
       'mode': 'map', 
      }, 
      serverType: 'mapserver' 
    }) 
}); 

This是我的地圖文件。

 
    MAP 
    NAME "world" 
    CONFIG "MS_ERRORFILE" "/home/neelesh/Projects/georbis/data/logs/mapservice_errors.log" 
    CONFIG "PROJ_LIB" "/home/neelesh/Projects/georbis/deps/proj.4-master/share/proj" 
    CONFIG "ON_MISSING_DATA" "LOG" 
    DEBUG 5 
    EXTENT -180.000 -90.000 180.000 90.000 
    SHAPEPATH "/home/neelesh/Projects/georbis/data/service_data/data/wms" 
    IMAGECOLOR 255 255 255 
    SIZE 1350 675 

    WEB 
    METADATA 
     "wms_title" "Georbis WMS Server" 
     "wms_author" "VizExperts" 
     "wms_onlineresource" "http://192.168.1.36:19090/rasters/world/wms?" 
     "wms_enable_request" "*" 
     "wms_srs" "EPSG:4326 EPSG:3857" 
     "wms_feature_info_mime_type" "text/html" 
     "wms_format" "image/jpg" 
    END 
    END 

    PROJECTION 
    "init=epsg:4326" 
    END 

    LAYER 
    NAME world 
    TYPE RASTER 
    DATA "world.tif" 
    METADATA 
     "wms_title" "BlueWorld Map" 
     "wms_srs" "epsg:4326" 
     "wms_server_version" "1.1.1" 
    END 
    PROJECTION 
     "init=epsg:4326" 
    END 
    END 
END 

我試圖ol.view.fit方法以適應層到其容器但layer.getExtent()的用於層值未定義。

請幫我找出有什麼問題。 wms請求格式或映射文件有問題嗎?

回答

0

這是因爲您將您的MapServer配置爲僅支持EPSG 4326.它應該支持EPSG 3857(OSM磁貼)。您應該將"wms_srs" "epsg:4326"更改爲"wms_srs" "EPSG:4326 EPSG:3857"(請參閱official WMS server doc)。你可以確認它的作用是做一個GetCapabilities request

當您使用GeoServer的,默認情況下,它支持WMS所有投影(所以它的作品,因爲你的WMS要求圖片與EPSG 3857)

你應該知道,現在你也可以做光柵重投影在客戶端在OpenLayers中。對於一些演示,去http://openlayers.org/en/v3.11.0/examples/並與關鍵字「重投影」搜索

+0

是有一個與wms_srs但也它不工作固定後的問題。仍然面臨同樣的問題。 – Neelesh

+0

您是否在網絡面板中進行調試以查看對圖像的調用是否有效?這是看看是否有任何WMS電話,如果返回的內容是真正的圖像 –