OpenLayers矢量图层显示偏移量

问题描述:

我正在使用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

经过几小时的搜索,我终于发现GPS层在初始化时将其“比率”设置为1.2。

曾经是一个WMS层(来自网格继承),该层所以设置其比率将意味着:

比{浮法}仅用于当在单个区块模式,这个指定的比率单个瓦片的大小与地图的大小。

但比是指别的用于向量层:

比{浮法}这指定的矢量层特征的可视性的大小的比率,以在地图上的大小。

默认比率为1时,它被呈现在正确的位置!感谢您的意见和建议。