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 源,其中包含显示不同特征的多个图层。然后每一层都可以独立显示或隐藏。
所以在传单中我可以这样做:
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 源,其中包含显示不同特征的多个图层。然后每一层都可以独立显示或隐藏。