0

我是 OpenLayers 的新手,因为我今天刚刚尝试将我的地图从 Leaflet 移植到 OL,因为hitTolerance这正是我想要的。另外,我知道 v5 是相当新的,所以根据我的经验,文档并没有完全更新。

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

我知道,从 v5 开始,您现在可以在 中指定hitToleranceforEachLayerAtPixel但我仍然必须非常准确地击中该层才能使其被forEachLayerAtPixel.

我也试过forEachFeatureAtPixel了,但这没有给我任何东西。WMS 图层是否具有功能?

我已经尝试过TileLayer/TileWMSImageLayer/ImageWMS。两者的行为相同。forEachLayerAtPixel即使与hitTolerance我一起使用100仍然必须非常精确才能击中图层。

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

4

1 回答 1

1

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

在处理 WMS 时,OL 不知道特征,它只是显示图像。它只是将点击坐标发送到地图服务器,地图服务器可能会或不会对其应用缓冲区,并返回找到的特征信息。

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

例如,这里是 Geoserver 的相应文档

于 2018-07-05T12:25:02.940 回答