【问题标题】:How to get the feature geojson from the result of queryRenderedFeatures on a layer whose source is a vector tile in mapbox gl js?如何从源是mapbox gl js中的矢量瓦片的图层上的queryRenderedFeatures的结果中获取特征geojson?
【发布时间】:2021-02-22 07:23:14
【问题描述】:

我有一个名为“Searched 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”不同的来源?

【问题讨论】:

  • 高亮是什么意思?就像用户点击或悬停在它上面一样,该功能会改变颜色?

标签: mapbox mapbox-gl-js


【解决方案1】:

您可以使用下面第一个链接中描述的方法 - 但要了解返回的特征与源 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/

highlighting polyline features in mapbox-gl.js

【讨论】:

    【解决方案2】:

    试试这篇文章,我已经添加了代码,它可以让你使用 querySourceFeatures() https://stackoverflow.com/a/66308173/9185662 获得这些功能

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 2021-03-30
      • 2018-09-24
      相关资源
      最近更新 更多