forked from MapComplete/MapComplete
Update of latlon2country and use its async interface; small refactoring of simplemetagging, improvements to cacheBuilder which respects isShown and calculated tags now
This commit is contained in:
parent
e053e9f279
commit
9cfb7fbe68
14 changed files with 417 additions and 4320 deletions
|
@ -68,7 +68,7 @@ export default class FilteringFeatureSource implements FeatureSourceForLayer, Ti
|
|||
const features: { feature: any; freshness: Date }[] = this.upstream.features.data;
|
||||
const newFeatures = features.filter((f) => {
|
||||
|
||||
self.registerCallback(f.feature, layer.layerDef)
|
||||
self.registerCallback(f.feature)
|
||||
|
||||
if (
|
||||
this.state.selectedElement.data?.id === f.feature.id ||
|
||||
|
@ -105,15 +105,18 @@ export default class FilteringFeatureSource implements FeatureSourceForLayer, Ti
|
|||
this._is_dirty.setData(false)
|
||||
}
|
||||
|
||||
private registerCallback(feature: any, layer: LayerConfig) {
|
||||
const src = this.state.allElements.addOrGetElement(feature)
|
||||
private registerCallback(feature: any) {
|
||||
const src = this.state?.allElements?.addOrGetElement(feature)
|
||||
if(src == undefined){
|
||||
return
|
||||
}
|
||||
if (this._alreadyRegistered.has(src)) {
|
||||
return
|
||||
}
|
||||
this._alreadyRegistered.add(src)
|
||||
|
||||
const self = this;
|
||||
src.addCallbackAndRunD(isShown => {
|
||||
src.addCallbackAndRunD(_ => {
|
||||
self._is_dirty.setData(true)
|
||||
})
|
||||
}
|
||||
|
|
|
@ -86,6 +86,10 @@ export default class TiledFeatureSource implements Tiled, IndexedFeatureSource,
|
|||
}
|
||||
|
||||
public static createHierarchy(features: FeatureSource, options?: TiledFeatureSourceOptions): TiledFeatureSource {
|
||||
options = {
|
||||
...options,
|
||||
layer: features["layer"] ?? options.layer
|
||||
}
|
||||
const root = new TiledFeatureSource(0, 0, 0, null, options)
|
||||
features.features?.addCallbackAndRunD(feats => root.addFeatures(feats))
|
||||
return root;
|
||||
|
@ -200,6 +204,6 @@ export interface TiledFeatureSourceOptions {
|
|||
* Setting 'dontEnforceMinZoomLevel' will still allow bigger zoom levels for those features
|
||||
*/
|
||||
readonly dontEnforceMinZoom?: boolean,
|
||||
readonly registerTile?: (tile: TiledFeatureSource & Tiled) => void,
|
||||
readonly registerTile?: (tile: TiledFeatureSource & FeatureSourceForLayer & Tiled) => void,
|
||||
readonly layer?: FilteredLayer
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue