forked from MapComplete/MapComplete
Fix calculated tags
This commit is contained in:
parent
a482c5b1d0
commit
0ad16cfe3f
3 changed files with 30 additions and 24 deletions
|
@ -31,11 +31,12 @@ export default class FeaturePipeline implements FeatureSource {
|
|||
// first we metatag, then we save to get the metatags into storage too
|
||||
// Note that we need to register before we do metatagging (as it expects the event sources)
|
||||
|
||||
// AT last, the metaTagging also needs to be run _after_ the duplicatorPerLayer
|
||||
const amendedOverpassSource =
|
||||
new RememberingSource(
|
||||
new LocalStorageSaver(
|
||||
new FeatureDuplicatorPerLayer(flayers,
|
||||
new MetaTaggingFeatureSource(
|
||||
new MetaTaggingFeatureSource(
|
||||
new FeatureDuplicatorPerLayer(flayers,
|
||||
new RegisteringFeatureSource(
|
||||
updater)
|
||||
)), layout));
|
||||
|
@ -48,12 +49,14 @@ export default class FeaturePipeline implements FeatureSource {
|
|||
new RememberingSource(new RegisteringFeatureSource(new FeatureDuplicatorPerLayer(flayers, new LocalStorageSource(layout))
|
||||
));
|
||||
|
||||
newPoints = new MetaTaggingFeatureSource(new FeatureDuplicatorPerLayer(flayers,
|
||||
new RegisteringFeatureSource(newPoints)));
|
||||
newPoints = new MetaTaggingFeatureSource(
|
||||
new FeatureDuplicatorPerLayer(flayers,
|
||||
new RegisteringFeatureSource(newPoints)));
|
||||
|
||||
const amendedOsmApiSource = new RememberingSource(
|
||||
new FeatureDuplicatorPerLayer(flayers,
|
||||
new MetaTaggingFeatureSource(
|
||||
new MetaTaggingFeatureSource(
|
||||
new FeatureDuplicatorPerLayer(flayers,
|
||||
|
||||
new RegisteringFeatureSource(fromOsmApi))));
|
||||
|
||||
const merged =
|
||||
|
|
|
@ -22,12 +22,13 @@ export default class MetaTagging {
|
|||
* The features are a list of geojson-features, with a "properties"-field and geometry
|
||||
*/
|
||||
static addMetatags(features: { feature: any; freshness: Date }[],
|
||||
relations: Map<string, { role: string, relation: Relation }[]>,
|
||||
relations: Map<string, { role: string, relation: Relation }[]>,
|
||||
layers: LayerConfig[],
|
||||
includeDates = true) {
|
||||
|
||||
console.debug("Adding meta tags to all features")
|
||||
for (const metatag of SimpleMetaTagger.metatags) {
|
||||
if(metatag.includesDates && !includeDates){
|
||||
if (metatag.includesDates && !includeDates) {
|
||||
// We do not add dated entries
|
||||
continue;
|
||||
}
|
||||
|
@ -62,12 +63,12 @@ export default class MetaTagging {
|
|||
if (f === undefined) {
|
||||
continue;
|
||||
}
|
||||
try{
|
||||
try {
|
||||
f({featuresPerLayer: featuresPerLayer, memberships: relations}, feature.feature)
|
||||
}catch(e){
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -89,19 +90,21 @@ export default class MetaTagging {
|
|||
}
|
||||
const func = new Function("feat", "return " + code + ";");
|
||||
|
||||
try{
|
||||
|
||||
|
||||
const f = (featuresPerLayer, feature: any) => {
|
||||
try{
|
||||
feature.properties[key] = func(feature);
|
||||
}catch(e){
|
||||
console.error("Could not calculate a metatag defined by "+code+" due to "+e+". This is code defined in the theme. Are you the theme creator? Doublecheck your code. Note that the metatags might not be stable on new features")
|
||||
try {
|
||||
|
||||
|
||||
const f = (featuresPerLayer, feature: any) => {
|
||||
try {
|
||||
const result = func(feature);
|
||||
console.debug("Calculated tag with code ", code, " returned ", result)
|
||||
feature.properties[key] =result;
|
||||
} catch (e) {
|
||||
console.error("Could not calculate a metatag defined by " + code + " due to " + e + ". This is code defined in the theme. Are you the theme creator? Doublecheck your code. Note that the metatags might not be stable on new features")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
functions.push(f)
|
||||
}catch(e){
|
||||
functions.push(f)
|
||||
} catch (e) {
|
||||
console.error("Could not create a dynamic function: ", e)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ import { Utils } from "../Utils";
|
|||
|
||||
export default class Constants {
|
||||
|
||||
public static vNumber = "0.7.2";
|
||||
public static vNumber = "0.7.2a";
|
||||
|
||||
// The user journey states thresholds when a new feature gets unlocked
|
||||
public static userJourney = {
|
||||
|
|
Loading…
Reference in a new issue