2016-01-24 154 views
2

我正在使用OpenLayers 2.13的地圖解決方案中添加新功能。 該解決方案顯示挪威的功能,因此我們使用UTM33N(EPSG:32633)投影。OpenLayers矢量圖層顯示偏移量

目前,我想選擇/提示功能添加到一個新的圖層 應顯示的GPS軌跡(線串) 該解決方案已經有幾個 其料層的類似的「選擇」功能。這些圖層作爲數組添加到OpenLayers.Control.SelectFeature。

在我將GPS圖層添加到SelectFeature之前,我可以看到它在地圖中和正確的位置正確顯示 。 (圖像1)

在設置地圖,我的GPS層添加到在SelectFeature控制其內部 定製的TooltipControl各層:

tooltipControl.getSelectFeatureControl().selectFeatureControl.layers.push(gpsLayer); 

當我將其添加到SelectFeature控制但是,它顯示的位置與本應該出現的位置相差很大。 (Image 2) 偏移量實際上取決於縮放級別,因爲當我放大功能時,它們的位置正確,但仍然不正確。

從檢查DOM我可以看到,在添加GPS圖層到SelectFeature控件 之前,該圖層被渲染到名爲「OpenLayers_Layer_Vector_55」的div內。在平移 地圖時,div的樣式正在更改,更具體地說div的「left」和「top」屬性 正在更改以確保線串呈現在正確的位置。

將其添加到SelectFeature後,它將在一個名爲「OpenLayers_Layer_Vector_RootContainer_283」 的div內呈現,並與所有其他可選圖層一起呈現。現在,GPS圖層不再呈現在地圖上正確的 位置上。當我平移時,OpenLayers仍然更新Vector_55 div 的「left」和「top」屬性,但GPS層不受此影響,因爲它現在包含在RootContainer_283 div中。

如何在正確的位置渲染GPS圖層,並將其保留在SelectFeature控件中?

圖片1 - 正確的渲染:

圖片2 - 錯誤的渲染:

提前感謝!

+0

偏移量有多大?米,公里?你使用哪種投影? – MortenSickel

+0

偏移量實際上取決於縮放級別。當我放大時,功能接近他們的正確位置,但仍然不正確。使用的投影是EPSG:32633(UTM33N)。 –

+0

OpenLayers肯定能夠使用selectFeature控件處理多個矢量圖層,所以問題在其他地方..也許在自定義selectFeature控件中? – fradal83

回答

1

經過幾小時的搜索,我終於發現GPS層在初始化時將其「比率」設置爲1.2。

曾經是一個WMS層(來自網格繼承),該層所以設置其比率將意味着:

比{浮法}僅用於當在單個區塊模式,這個指定的比率單個瓦片的大小與地圖的大小。

但比是指別的用於向量層:

比{浮法}這指定的矢量層特徵的可視性的大小的比率,以在地圖上的大小。

默認比率爲1時,它被呈現在正確的位置!感謝您的意見和建議。