Add blacklist of ids to geojson source in order to avoid duplicate features to be loaded multiple times

This commit is contained in:
Pieter Vander Vennet 2021-09-29 17:48:15 +02:00
parent fdcda66e5c
commit 36d62f9923
2 changed files with 28 additions and 2 deletions

View file

@ -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
},