使用偏移量

时间:2016-01-24 11:47:59

标签: javascript openlayers

我正在为使用OpenLayers 2.13的地图解决方案添加新功能。 此解决方案显示挪威的功能,因此我们使用UTM33N(EPSG:32633)投影。

目前我正在尝试将可选择/工具提示功能添加到新图层 应显示GPS轨迹(Linestrings) 该解决方案已经具有类似的可选择性"功能 它的几个层。这些图层作为数组添加到OpenLayers.Control.SelectFeature中。

在我将GPS图层添加到SelectFeature之前,我可以看到它正在显示 正确地在地图中和正确的位置。 (图1)

在设置地图时,我将GPS图层添加到SelectFeature控件中的图层中 定制的TooltipControl:

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

然而,当我将它添加到SelectFeature控件时,它显示的位置与应该的位置相差很大。 (图2) 偏移实际上取决于缩放级别,因为当我放大特征时接近它们的正确位置,但仍然不正确。

从检查DOM我可以看到在将GPS图层添加到SelectFeature控件之前 该图层正在一个名为" OpenLayers_Layer_Vector_55"的div中呈现。平移时 地图,div的风格正在改变,更具体地说是" left" " top"性能 正在更改div以确保线串呈现在正确的位置。

将其添加到SelectFeature后,它将被渲染到名为" OpenLayers_Layer_Vector_RootContainer_283"的div中。 以及所有其他可选图层。现在GPS层没有正确渲染 在地图上的位置了。 OpenLayers仍在更新" left" " top" Vector_55 div的属性 当我平移时,GPS层不受此影响,因为它现在包含在RootContainer_283 div中。

如何将GPS图层渲染到正确的位置并仍在SelectFeature控件中?

图片1 - 正确渲染:

图片2 - 渲染错误:

提前致谢!

1 个答案:

答案 0 :(得分:1)

经过几个小时的搜索,我终于发现GPS层已经达到了它的比例"在初始化时设置为1.2。

此图层曾经是WMS图层(继承自Grid),因此设置其比率意味着:

  

ratio {Float}仅在单切片模式下使用时,它指定单个切片的大小与地图大小的比率。

但比率对于Vector层来说意味着别的东西:

  

ratio {Float}指定矢量图层要素的可见性大小与地图大小的比率。

默认比率为1时,它会呈现在正确的位置!感谢评论者的意见。