如何从源为mapbox gl js中的矢量切片的图层上的查询渲染要素的结果中获取要素geojson?



我有一个名为"搜索的LayerX"的层,具有矢量图块源。我有一个简单的要求,即在运行时突出显示此"搜索的 LayerX"中的功能。

我正在考虑使用"搜索的 LayerX"上的 queryRenderedFeatures 的结果与此特定特征的唯一 ID 过滤器一起使用,并将此功能的 geojson 用作新层的单独源,我将添加为"选定的 LayerX"。

var features = mapBox.queryRenderedFeatures({layers:['Searched LayerX'], filter : ["==",'gid','7818_2_CA']})
var selectedFeature = features[0];

生成的功能集不提供任何可用于创建新的 geojson 源的 geojson。 所以我的问题是,如何将结果用作与我的"选定 LayerX"不同的来源?

您可以使用下面第一个链接中描述的方法 - 但要了解返回的要素与源 GeoJSON 要素不同 - 它是该缩放级别上该要素的矢量切片表示,这意味着它可能已高度简化。

https://gis.stackexchange.com/questions/186533/highlight-feature-with-click-in-mapbox-gl

另一种方法是添加另一个具有相同来源的图层,并使用滤镜功能进行突出显示,如下两个链接所示 -

http://www.mapbox.com.s3-website-us-east-1.amazonaws.com/mapbox-gl-js/example/query-similar-features/

在 Mapbox-GL 中突出显示折线要素.js

试试这篇文章,我添加了代码,让你使用 querySourceFeatures(( https://stackoverflow.com/a/66308173/9185662

最新更新