From 782926c09decd78beee9a68e959d3e5b6e39e4ff Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Wed, 8 May 2024 14:20:59 +0200 Subject: [PATCH] Velopark: include name in maproulette items --- src/Logic/Web/LinkedDataLoader.ts | 66 +++++++++++++++---------------- src/UI/SpecialVisualizations.ts | 1 - 2 files changed, 33 insertions(+), 34 deletions(-) diff --git a/src/Logic/Web/LinkedDataLoader.ts b/src/Logic/Web/LinkedDataLoader.ts index e49386b8cd..7bf03953eb 100644 --- a/src/Logic/Web/LinkedDataLoader.ts +++ b/src/Logic/Web/LinkedDataLoader.ts @@ -27,23 +27,23 @@ export default class LinkedDataLoader { opening_hours: { "@id": "http://schema.org/openingHoursSpecification" }, openingHours: { "@id": "http://schema.org/openingHours", "@container": "@set" }, geo: { "@id": "http://schema.org/geo" }, - alt_name: { "@id": "http://schema.org/alternateName" }, + alt_name: { "@id": "http://schema.org/alternateName" } } private static COMPACTING_CONTEXT_OH = { dayOfWeek: { "@id": "http://schema.org/dayOfWeek", "@container": "@set" }, closes: { "@id": "http://schema.org/closes", - "@type": "http://www.w3.org/2001/XMLSchema#time", + "@type": "http://www.w3.org/2001/XMLSchema#time" }, opens: { "@id": "http://schema.org/opens", - "@type": "http://www.w3.org/2001/XMLSchema#time", - }, + "@type": "http://www.w3.org/2001/XMLSchema#time" + } } private static formatters: Record<"phone" | "email" | "website", Validator> = { phone: new PhoneValidator(), email: new EmailValidator(), - website: new UrlValidator(undefined, undefined, true), + website: new UrlValidator(undefined, undefined, true) } private static ignoreKeys = [ "http://schema.org/logo", @@ -56,7 +56,7 @@ export default class LinkedDataLoader { "http://schema.org/description", "http://schema.org/hasMap", "http://schema.org/priceRange", - "http://schema.org/contactPoint", + "http://schema.org/contactPoint" ] private static shapeToPolygon(str: string): Polygon { @@ -69,8 +69,8 @@ export default class LinkedDataLoader { .trim() .split(" ") .map((n) => Number(n)) - ), - ], + ) + ] } } @@ -92,18 +92,18 @@ export default class LinkedDataLoader { const context = { lat: { "@id": "http://schema.org/latitude", - "@type": "http://www.w3.org/2001/XMLSchema#double", + "@type": "http://www.w3.org/2001/XMLSchema#double" }, lon: { "@id": "http://schema.org/longitude", - "@type": "http://www.w3.org/2001/XMLSchema#double", - }, + "@type": "http://www.w3.org/2001/XMLSchema#double" + } } const flattened = await jsonld.compact(geo, context) return { type: "Point", - coordinates: [Number(flattened.lon), Number(flattened.lat)], + coordinates: [Number(flattened.lon), Number(flattened.lat)] } } @@ -194,7 +194,7 @@ export default class LinkedDataLoader { ) delete compacted["openingHours"] } - if(compacted["opening_hours"] === undefined){ + if (compacted["opening_hours"] === undefined) { delete compacted["opening_hours"] } if (compacted["geo"]) { @@ -288,7 +288,7 @@ export default class LinkedDataLoader { if (properties["latitude"] && properties["longitude"]) { geometry = { type: "Point", - coordinates: [Number(properties["longitude"]), Number(properties["latitude"])], + coordinates: [Number(properties["longitude"]), Number(properties["latitude"])] } delete properties["latitude"] delete properties["longitude"] @@ -300,7 +300,7 @@ export default class LinkedDataLoader { const geo: GeoJSON = { type: "Feature", properties, - geometry, + geometry } delete linkedData.geo delete properties.shape @@ -331,7 +331,7 @@ export default class LinkedDataLoader { return } output[key] = output[key].map((v) => applyF(v)) - if(!output[key].some(v => v !== undefined)){ + if (!output[key].some(v => v !== undefined)) { delete output[key] } } @@ -416,7 +416,7 @@ export default class LinkedDataLoader { "brede publiek", "iedereen", "bezoekers", - "iedereen - vooral bezoekers gemeentehuis of bibliotheek.", + "iedereen - vooral bezoekers gemeentehuis of bibliotheek." ].indexOf(audience.toLowerCase()) >= 0 ) { return "yes" @@ -483,7 +483,6 @@ export default class LinkedDataLoader { } rename("capacityElectric", "capacity:electric_bicycle") - delete output["name"] delete output["numberOfLevels"] return output @@ -500,13 +499,14 @@ export default class LinkedDataLoader { mv: "http://schema.mobivoc.org/", gr: "http://purl.org/goodrelations/v1#", vp: "https://data.velopark.be/openvelopark/vocabulary#", - vpt: "https://data.velopark.be/openvelopark/terms#", + vpt: "https://data.velopark.be/openvelopark/terms#" }, [url], undefined, " ?parking a ", "?parking " + property + " " + (variable ?? "") ) + console.log("Fetching a velopark property gave", property, results) return results } @@ -521,7 +521,7 @@ export default class LinkedDataLoader { mv: "http://schema.mobivoc.org/", gr: "http://purl.org/goodrelations/v1#", vp: "https://data.velopark.be/openvelopark/vocabulary#", - vpt: "https://data.velopark.be/openvelopark/terms#", + vpt: "https://data.velopark.be/openvelopark/terms#" }, [url], "g", @@ -646,7 +646,7 @@ export default class LinkedDataLoader { return this.mergeResults(...allPartialResults) } - private static veloparkCache : Record = {} + private static veloparkCache: Record = {} /** * Fetches all data relevant to velopark. @@ -654,29 +654,29 @@ export default class LinkedDataLoader { * @param url */ public static async fetchVeloparkEntry(url: string, includeExtras: boolean = false): Promise { - const cacheKey = includeExtras+url - if(this.veloparkCache[cacheKey]){ + const cacheKey = includeExtras + url + if (this.veloparkCache[cacheKey]) { return this.veloparkCache[cacheKey] } const withProxyUrl = Constants.linkedDataProxy.replace("{url}", encodeURIComponent(url)) const optionalPaths: Record> = { "schema:interactionService": { - "schema:url": "website", + "schema:url": "website" }, - "schema:name": "name", "mv:operatedBy": { - "gr:legalName": "operator", + "gr:legalName": "operator" }, "schema:contactPoint": { "schema:email": "email", - "schema:telephone": "phone", + "schema:telephone": "phone" }, - "schema:dateModified": "_last_edit_timestamp", + "schema:dateModified": "_last_edit_timestamp" } - if(includeExtras){ + if (includeExtras) { optionalPaths["schema:address"] = { - "schema:streetAddress":"addr" + "schema:streetAddress": "addr" } + optionalPaths["schema:name"] = "name" optionalPaths["schema:description"] = "description" } @@ -692,11 +692,11 @@ export default class LinkedDataLoader { "schema:geo": { "schema:latitude": "latitude", "schema:longitude": "longitude", - "schema:polygon": "shape", + "schema:polygon": "shape" }, "schema:priceSpecification": { "mv:freeOfCharge": "fee", - "schema:price": "charge", + "schema:price": "charge" } } @@ -704,7 +704,7 @@ export default class LinkedDataLoader { "schema:priceSpecification [ mv:dueForTime [ mv:timeStartValue ?chargeStart; mv:timeEndValue ?chargeEnd; mv:timeUnit ?timeUnit ] ]", "vp:allows [vp:bicycleType ; vp:bicyclesAmount ?capacityCargobike; vp:bicycleType ?cargoBikeType]", "vp:allows [vp:bicycleType ; vp:bicyclesAmount ?capacityElectric; vp:bicycleType ?electricBikeType]", - "vp:allows [vp:bicycleType ; vp:bicyclesAmount ?capacityTandem; vp:bicycleType ?tandemBikeType]", + "vp:allows [vp:bicycleType ; vp:bicyclesAmount ?capacityTandem; vp:bicycleType ?tandemBikeType]" ] const unpatched = await this.fetchEntry( diff --git a/src/UI/SpecialVisualizations.ts b/src/UI/SpecialVisualizations.ts index 17a17babfa..53c83c9bd5 100644 --- a/src/UI/SpecialVisualizations.ts +++ b/src/UI/SpecialVisualizations.ts @@ -1814,7 +1814,6 @@ console.log(">>> ",helpTexts.join("\n\n")) ) ?? features[0] const properties = feature.properties properties["ref:velopark"] = url - delete properties["name"] console.log("Got properties from velopark:", properties) return properties } catch (e) {