A new element now shows up directly on the map
This commit is contained in:
parent
bee2878b76
commit
32bc1433b4
5 changed files with 24 additions and 15 deletions
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -32,6 +32,7 @@ export default class ShowDataLayer {
|
|||
}
|
||||
|
||||
function update() {
|
||||
console.log("UPDATING!")
|
||||
if (features.data === undefined) {
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue