forked from MapComplete/MapComplete
Add blacklist of ids to geojson source in order to avoid duplicate features to be loaded multiple times
This commit is contained in:
parent
fdcda66e5c
commit
36d62f9923
2 changed files with 28 additions and 2 deletions
|
@ -37,6 +37,8 @@ export default class DynamicGeoJsonTileSource extends DynamicTileSource {
|
|||
console.warn("No whitelist found for ", layer.layerDef.id, err)
|
||||
})
|
||||
|
||||
const seenIds = new Set<string>();
|
||||
const blackList = new UIEventSource(seenIds)
|
||||
super(
|
||||
layer,
|
||||
source.geojsonZoomLevel,
|
||||
|
@ -50,8 +52,15 @@ export default class DynamicGeoJsonTileSource extends DynamicTileSource {
|
|||
|
||||
const src = new GeoJsonSource(
|
||||
layer,
|
||||
zxy
|
||||
zxy,
|
||||
{
|
||||
featureIdBlacklist: blackList
|
||||
}
|
||||
)
|
||||
src.features.addCallbackAndRunD(feats => {
|
||||
feats.forEach(feat => seenIds.add(feat.feature.properties.id))
|
||||
blackList.ping();
|
||||
})
|
||||
registerLayer(src)
|
||||
return src
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue