mapbox-gl 可以按属性对象内的值对 geoJSON 功能进行分组吗?

Can mapbox-gl group geoJSON features by value inside properties object?

所以在传单中我可以这样做:

const [groupedLayers] = useState<DeviceFeedLayerGroups>({
  mine: new LayerGroup(),
  public: new LayerGroup(),
  private: new LayerGroup(),
  favorite: new LayerGroup(),
});

const onEachFeature = (
  feature: Feature<Geometry, NexusGenAllTypes['GeoJSONFeatureProperties']>,
  layer: L.Layer,
  ) => {
    /* ... */
    groupedLayers[feature.properties.relation].addLayer(layer);
}

geoJSON(deviceFeed, {
  pointToLayer,
  onEachFeature,
});

这样我就可以拥有可以打开或关闭的图层组。这可以用 mapbox-gl 完成吗?

谢谢。

我不完全理解您所说的 Leaflet 功能,但是:

Mapbox GL JS 不支持图层“组”。但是,您可以使用过滤器创建一个 GeoJSON 源,其中包含显示不同特征的多个图层。然后每一层都可以独立显示或隐藏。