forked from MapComplete/MapComplete
Fix unit tests (no doctests yet)
This commit is contained in:
parent
325b8831f2
commit
7cc184fdd8
9 changed files with 154 additions and 81 deletions
|
@ -58,6 +58,49 @@ export class SimpleMetaTagger {
|
|||
}
|
||||
}
|
||||
|
||||
export class ReferencingWaysMetaTagger extends SimpleMetaTagger {
|
||||
/**
|
||||
* Disable this metatagger, e.g. for caching or tests
|
||||
* This is a bit a work-around
|
||||
*/
|
||||
public static enabled = true
|
||||
constructor() {
|
||||
super(
|
||||
{
|
||||
keys: ["_referencing_ways"],
|
||||
isLazy: true,
|
||||
doc: "_referencing_ways contains - for a node - which ways use this this node as point in their geometry. ",
|
||||
},
|
||||
(feature, _, __, state) => {
|
||||
if (!ReferencingWaysMetaTagger.enabled) {
|
||||
return false
|
||||
}
|
||||
//this function has some extra code to make it work in SimpleAddUI.ts to also work for newly added points
|
||||
const id = feature.properties.id
|
||||
if (!id.startsWith("node/")) {
|
||||
return false
|
||||
}
|
||||
console.trace("Downloading referencing ways for", feature.properties.id)
|
||||
OsmObject.DownloadReferencingWays(id).then((referencingWays) => {
|
||||
const currentTagsSource = state.allElements?.getEventSourceById(id) ?? []
|
||||
const wayIds = referencingWays.map((w) => "way/" + w.id)
|
||||
wayIds.sort()
|
||||
const wayIdsStr = wayIds.join(";")
|
||||
if (
|
||||
wayIdsStr !== "" &&
|
||||
currentTagsSource.data["_referencing_ways"] !== wayIdsStr
|
||||
) {
|
||||
currentTagsSource.data["_referencing_ways"] = wayIdsStr
|
||||
currentTagsSource.ping()
|
||||
}
|
||||
})
|
||||
|
||||
return true
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export class CountryTagger extends SimpleMetaTagger {
|
||||
private static readonly coder = new CountryCoder(
|
||||
Constants.countryCoderEndpoint,
|
||||
|
@ -492,33 +535,7 @@ export default class SimpleMetaTaggers {
|
|||
}
|
||||
)
|
||||
|
||||
public static referencingWays = new SimpleMetaTagger(
|
||||
{
|
||||
keys: ["_referencing_ways"],
|
||||
isLazy: true,
|
||||
includesDates: true,
|
||||
doc: "_referencing_ways contains - for a node - which ways use this this node as point in their geometry. ",
|
||||
},
|
||||
(feature, _, __, state) => {
|
||||
//this function has some extra code to make it work in SimpleAddUI.ts to also work for newly added points
|
||||
const id = feature.properties.id
|
||||
if (!id.startsWith("node/")) {
|
||||
return false
|
||||
}
|
||||
OsmObject.DownloadReferencingWays(id).then((referencingWays) => {
|
||||
const currentTagsSource = state.allElements?.getEventSourceById(id) ?? []
|
||||
const wayIds = referencingWays.map((w) => "way/" + w.id)
|
||||
wayIds.sort()
|
||||
const wayIdsStr = wayIds.join(";")
|
||||
if (wayIdsStr !== "" && currentTagsSource.data["_referencing_ways"] !== wayIdsStr) {
|
||||
currentTagsSource.data["_referencing_ways"] = wayIdsStr
|
||||
currentTagsSource.ping()
|
||||
}
|
||||
})
|
||||
|
||||
return true
|
||||
}
|
||||
)
|
||||
public static referencingWays = new ReferencingWaysMetaTagger()
|
||||
|
||||
public static metatags: SimpleMetaTagger[] = [
|
||||
SimpleMetaTaggers.latlon,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue