首页 / OpenLayers / 使用示例
`r`n 命中容差
把点击命中范围从精确像素放宽到十几像素,小目标也点得中。
`r`n
源码与运行效果
说明
map.forEachFeatureAtPixel(pixel, callback, { hitTolerance })
中的容差以屏幕像素为单位,目标越小、触控越粗,就越需要放宽。
示例把八个密集点位放在同一片区域,用滑块对比不同容差。
点击位置会画一个红点作为参照,状态栏给出命中的是哪一个点位; 容差为 0 时,必须点中图标的绘制像素才会命中。
| 操作 | 结果 |
|---|---|
| 容差 0 时点图标边缘 | 多数情况判定为未命中 |
| 容差 16 时点两个图标之间 | 命中较近的那个点位 |
| 点击空白处 | 红点出现,状态栏显示未命中 |
容差放宽后相邻要素可能同时进入命中范围,回调返回的是第一个匹配项;需要列出全部时用 getFeaturesAtPixel。