我正在为使用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控件中?
提前致谢!
答案 0 :(得分:1)
经过几个小时的搜索,我终于发现GPS层已经达到了它的比例"在初始化时设置为1.2。
此图层曾经是WMS图层(继承自Grid),因此设置其比率意味着:
ratio {Float}仅在单切片模式下使用时,它指定单个切片的大小与地图大小的比率。
但比率对于Vector层来说意味着别的东西:
ratio {Float}指定矢量图层要素的可见性大小与地图大小的比率。
默认比率为1时,它会呈现在正确的位置!感谢评论者的意见。