forked from MapComplete/MapComplete
First working version of split road functionality
This commit is contained in:
parent
61f2ebf9ba
commit
248ea78b17
11 changed files with 88 additions and 66 deletions
|
@ -34,7 +34,6 @@ export default class ChangeApplicator implements FeatureSource {
|
|||
runningUpdate = true;
|
||||
changes = changes.filter(ch => !seenChanges.has(ch))
|
||||
changes.forEach(c => seenChanges.add(c))
|
||||
console.log("Called back", changes)
|
||||
ChangeApplicator.ApplyChanges(self.features.data, changes, mode)
|
||||
source.features.ping()
|
||||
runningUpdate = false;
|
||||
|
@ -67,6 +66,7 @@ export default class ChangeApplicator implements FeatureSource {
|
|||
const now = new Date()
|
||||
|
||||
function add(feature) {
|
||||
feature.id = feature.properties.id
|
||||
features.push({
|
||||
feature: feature,
|
||||
freshness: now
|
||||
|
@ -135,9 +135,7 @@ export default class ChangeApplicator implements FeatureSource {
|
|||
for (const change of changesPerId.get(id)) {
|
||||
for (const kv of change.tags ?? []) {
|
||||
// Apply tag changes and ping the consumers
|
||||
const k = kv.k
|
||||
let v = kv.v
|
||||
f.properties[k] = v;
|
||||
f.properties[kv.k] = kv.v;
|
||||
}
|
||||
|
||||
// Apply other changes to the object
|
||||
|
|
|
@ -43,7 +43,7 @@ export default class FeaturePipeline implements FeatureSource {
|
|||
new FeatureDuplicatorPerLayer(flayers,
|
||||
new RegisteringFeatureSource(
|
||||
new ChangeApplicator(
|
||||
updater, changes, {generateNewGeometries: true}
|
||||
updater, changes
|
||||
))
|
||||
)), layout));
|
||||
|
||||
|
@ -65,7 +65,12 @@ export default class FeaturePipeline implements FeatureSource {
|
|||
const amendedOsmApiSource = new RememberingSource(
|
||||
new MetaTaggingFeatureSource(allLoadedFeatures,
|
||||
new FeatureDuplicatorPerLayer(flayers,
|
||||
new RegisteringFeatureSource(new ChangeApplicator(fromOsmApi, changes)))));
|
||||
new RegisteringFeatureSource(new ChangeApplicator(fromOsmApi, changes,
|
||||
{
|
||||
// We lump in the new points here
|
||||
generateNewGeometries: true
|
||||
}
|
||||
)))));
|
||||
|
||||
const merged =
|
||||
new FeatureSourceMerger([
|
||||
|
|
|
@ -76,7 +76,6 @@ export default class FilteringFeatureSource implements FeatureSource {
|
|||
return false;
|
||||
|
||||
});
|
||||
console.log("Filtering layer source: input: ", upstream.features.data?.length, "output:", newFeatures.length)
|
||||
self.features.setData(newFeatures);
|
||||
if (missingLayers.size > 0) {
|
||||
console.error("Some layers were not found: ", Array.from(missingLayers))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue