OpenLayers5:hitTolerance似乎不适用于WMS层

时间:2018-07-05 10:29:09

标签: javascript openlayers openlayers-5

我是OpenLayers的新手,因为hitTolerance正是我想要的,所以我今天才尝试将我的地图从Leaflet移植到OL。另外,我了解v5是相当新的功能,因此根据我的经验,文档并未完全更新。

我似乎无法hitTolerance使用WMS图层。

我了解到,自v5以来,您现在可以在hitTolerance中指定forEachLayerAtPixel,但是我仍然必须非常准确地击中该图层才能被forEachLayerAtPixel拾取。

我也尝试过forEachFeatureAtPixel,但那一无所获。 WMS图层是否具有功能?

我同时尝试了TileLayer/TileWMSImageLayer/ImageWMS。两者的行为相同。即使在forEachLayerAtPixel的{​​{1}}中也要使用hitTolerance,我仍然必须非常精确才能达到目标。

我做错什么了吗?我不知道这是否是错误,或者100是否根本不适用于WMS图层。任何帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

hitTolerance适用于矢量数据。 OL获取您的点击坐标并搜索附近的特征。

在处理WMS时,OL不了解这些功能,而只是显示图像。它只是将点击坐标发送到地图服务器,后者可能会或可能不会对其应用缓冲区,并返回找到的要素信息。

因此,对于WMS,命中公差是服务器设置,而不是客户端设置。

例如,这是对应于Geoserver的doc