diff --git a/InitUiElements.ts b/InitUiElements.ts index d3fbee5..9ce7531 100644 --- a/InitUiElements.ts +++ b/InitUiElements.ts @@ -317,9 +317,9 @@ export class InitUiElements { State.state.locationControl .addCallback(() => { - // Close the layer selection when the map is moved - // checkbox.isEnabled.setData(false); - }); + // Close the layer selection when the map is moved + // checkbox.isEnabled.setData(false); + }); const fullScreen = new LayerControlPanel(); checkbox.isEnabled.addCallback(isEnabled => { @@ -358,7 +358,7 @@ export class InitUiElements { State.state.availableBackgroundLayers, State.state.layoutToUse.map((layout: LayoutConfig) => layout.defaultBackgroundId)); - const attr = new Attribution(State.state.locationControl, State.state.osmConnection.userDetails, State.state.layoutToUse, + const attr = new Attribution(State.state.locationControl, State.state.osmConnection.userDetails, State.state.layoutToUse, State.state.leafletMap); const bm = new Basemap("leafletDiv", State.state.locationControl, @@ -396,11 +396,10 @@ export class InitUiElements { State.state.filteredLayers.setData(flayers); - const updater = new LoadFromOverpass(state.locationControl, state.layoutToUse, state.leafletMap); State.state.layerUpdater = updater; - + const source = new FilteringFeatureSource( @@ -408,10 +407,11 @@ export class InitUiElements { State.state.locationControl, new FeatureSourceMerger([ new RememberingSource(new WayHandlingApplyingFeatureSource(flayers, - new NoOverlapSource(flayers, new FeatureDuplicatorPerLayer(flayers, updater)) + new NoOverlapSource(flayers, new FeatureDuplicatorPerLayer(flayers, updater)) )), - new FeatureDuplicatorPerLayer(flayers, State.state.changes)])); - + new FeatureDuplicatorPerLayer(flayers, State.state.changes) + ]) + ); source.features.addCallback((featuresFreshness: { feature: any, freshness: Date }[]) => { let features = featuresFreshness.map(ff => ff.feature); @@ -419,9 +419,10 @@ export class InitUiElements { State.state.allElements.addElement(feature); }) MetaTagging.addMetatags(features); + console.log("ALL FEATURES", features); }) - - new ShowDataLayer(source.features, State.state.leafletMap, + + new ShowDataLayer(source.features, State.state.leafletMap, State.state.locationControl.map(l => l.zoom), State.state.layoutToUse.data); diff --git a/Logic/FeatureSource/FeatureDuplicatorPerLayer.ts b/Logic/FeatureSource/FeatureDuplicatorPerLayer.ts index b27ba2a..34aca43 100644 --- a/Logic/FeatureSource/FeatureDuplicatorPerLayer.ts +++ b/Logic/FeatureSource/FeatureDuplicatorPerLayer.ts @@ -36,8 +36,11 @@ export default class FeatureDuplicatorPerLayer implements FeatureSource { return; } + + let foundALayer = false; for (const layer of layers) { if (layer.layerDef.overpassTags.matchesProperties(f.feature.properties)) { + foundALayer = true; if (layer.layerDef.passAllFeatures) { // We copy the feature; the "properties" field is kept identical though! @@ -58,6 +61,9 @@ export default class FeatureDuplicatorPerLayer implements FeatureSource { } } } + if(!foundALayer){ + console.error("LAYER DEDUP PANIC: no suitable layer found for ", f, JSON.stringify(f), "within layers", layers) + } } return newFeatures; diff --git a/Logic/Osm/Changes.ts b/Logic/Osm/Changes.ts index 6aa5145..4a5e622 100644 --- a/Logic/Osm/Changes.ts +++ b/Logic/Osm/Changes.ts @@ -90,9 +90,6 @@ export class Changes implements FeatureSource{ } } - this.features.data.push({feature:geojson, freshness: new Date()}); - this.features.ping(); - // The basictags are COPIED, the id is included in the properties // The tags are not yet written into the OsmObject, but this is applied onto a const changes = []; @@ -104,6 +101,10 @@ export class Changes implements FeatureSource{ changes.push({elementId: id, key: kv.key, value: kv.value}) } State.state.allElements.addOrGetElement(geojson).ping(); + + this.features.data.push({feature:geojson, freshness: new Date()}); + this.features.ping(); + this.uploadAll([osmNode], changes); return geojson; } diff --git a/Models/Constants.ts b/Models/Constants.ts index 33dfd2c..a58a2c8 100644 --- a/Models/Constants.ts +++ b/Models/Constants.ts @@ -1,7 +1,7 @@ import { Utils } from "../Utils"; export default class Constants { - public static vNumber = "0.2.7-rc2"; + public static vNumber = "0.2.7-rc3"; // The user journey states thresholds when a new feature gets unlocked public static userJourney = { diff --git a/UI/ShowDataLayer.ts b/UI/ShowDataLayer.ts index 04dc80a..14839f0 100644 --- a/UI/ShowDataLayer.ts +++ b/UI/ShowDataLayer.ts @@ -32,6 +32,7 @@ export default class ShowDataLayer { } function update() { + console.log("UPDATING!") if (features.data === undefined) { return; }