获取线下的特征 mapbox gl js

get features under a line mapbox gl js

我需要能够在 mapbox gl js 中绘制任意线条。该线将用于 select 线层下方矢量切片层中的某些点。如何使用 mapbox gl js 做到这一点。我是否需要自定义绘制的多边形以便完全控制点?我正在考虑使用 project 和 unproject 以及起点、线条的像素宽度和线条的斜率,以及一些几何图形,来遍历所有可见点并获取线条下方的点。但是有没有更简单的方法使用 gl js api? QueryRenderedFeatures 接受一个边界框,但这在本质上似乎是矩形的,而且方向是南北线。我需要能够在地图上的任何角度绘制线。

您可以使用 turf-buffer function, and you can access the data in the vector tiles within that polygon by using queryRenderedFeatures with a bounding box that encompasses your buffered line polygon and filtering those results using turf-within 创建线条周围区域的自定义多边形,以获取落在线条下方的点。