【问题标题】:OpenLayers5: hitTolerance doesn't seem to work with WMS layerOpenLayers5:hitTolerance 似乎不适用于 WMS 层
【发布时间】:2018-07-05 10:29:08
【问题描述】:

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

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

我知道,从 v5 开始,您现在可以在 forEachLayerAtPixel 中指定 hitTolerance,但我仍然必须非常准确地点击图层才能被 forEachLayerAtPixel 拾取。

我也尝试过forEachFeatureAtPixel,但这并没有给我任何帮助。 WMS 图层有特征吗?

TileLayer/TileWMSImageLayer/ImageWMS 我都试过了。两者的行为相同。使用forEachLayerAtPixel 即使使用hitTolerance100,我仍然必须非常精确才能击中图层。

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

【问题讨论】:

    标签: javascript openlayers openlayers-5


    【解决方案1】:

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

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

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

    例如,这里是 Geoserver 对应的doc

    【讨论】:

    • 谢谢。那是我害怕的。不幸的是我使用的数据源只支持wms,但我会问他们是否支持缓冲区参数。谢谢。
    猜你喜欢
    • 2013-04-26
    • 1970-01-01
    • 2020-04-04
    • 2023-04-06
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多