2017-07-06 51 views
0

當使用ol.format.WFS(包括GML2和GML3)來讀取要素時,如果投影是EPSG:4326,它們將始終假定爲YX。所以OL翻轉他們。我在Geoserver 2.11中使用了這個功能,並且,從這個版本開始,服務器可以將座標作爲XY發送,具體取決於您如何通過投影。你可以閱讀有關它hereOpenlayers 4:WFS格式總是在EPSG上翻轉座標:4326

通過OL代碼我可以看到它從xml中讀取投影,並且它決定基於軸方向翻轉它,這對於4326是neu,導致翻轉。

問題是我的配置取決於客戶端和服務器可能已經發送XY。我想知道這是否是OpenLayers的一個bug,或者是否是一個決策。

有沒有辦法阻止它做到這一點?

回答

2

您可以用自定義投影對象覆蓋它

/ override the axis orientation for WMS GetFeatureInfo 
var proj = new ol.proj.Projection({ 
    code: 'http://www.opengis.net/gml/srs/epsg.xml#4326', 
    axis: 'enu' 
}); 
ol.proj.addEquivalentProjections([ol.proj.get('EPSG:4326'), proj]); 

只要確保代碼的字符串相匹配的是你的WFS/GML文件內。

+0

我不是100%確定那個解決方案對我來說是可行的。我正在構建的Web客戶端可能會提供不同的服務,這些服務可能位於不同的服務器中。這意味着配置可能會根據所顯示的圖層/服務而改變。這可能意味着不斷改變每個查詢的投影定義。我想也許是一個更可行的解決方案,可能會覆蓋執行檢查的功能。 – Solidus