Merge master
This commit is contained in:
commit
da7d1287f0
2 changed files with 53 additions and 65 deletions
|
@ -7,10 +7,9 @@ import CountryCoder from "latlon2country"
|
||||||
import {UIEventSource} from "./UIEventSource";
|
import {UIEventSource} from "./UIEventSource";
|
||||||
|
|
||||||
class SimpleMetaTagger {
|
class SimpleMetaTagger {
|
||||||
private _f: (feature: any, index: number) => void;
|
|
||||||
public readonly keys: string[];
|
public readonly keys: string[];
|
||||||
public readonly doc: string;
|
public readonly doc: string;
|
||||||
|
private _f: (feature: any, index: number) => void;
|
||||||
|
|
||||||
constructor(keys: string[], doc: string, f: ((feature: any, index: number) => void)) {
|
constructor(keys: string[], doc: string, f: ((feature: any, index: number) => void)) {
|
||||||
this.keys = keys;
|
this.keys = keys;
|
||||||
|
@ -90,39 +89,39 @@ export default class MetaTagging {
|
||||||
if (tags.opening_hours === undefined || tags._country === undefined) {
|
if (tags.opening_hours === undefined || tags._country === undefined) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
|
|
||||||
const oh = new opening_hours(tags["opening_hours"], {
|
const oh = new opening_hours(tags["opening_hours"], {
|
||||||
lat: tags._lat,
|
lat: tags._lat,
|
||||||
lon: tags._lon,
|
lon: tags._lon,
|
||||||
address: {
|
address: {
|
||||||
country_code: tags._country.toLowerCase()
|
country_code: tags._country.toLowerCase()
|
||||||
}
|
}
|
||||||
}, {tag_key: "opening_hours"});
|
}, {tag_key: "opening_hours"});
|
||||||
// AUtomatically triggered on the next change
|
// AUtomatically triggered on the next change
|
||||||
const updateTags = () => {
|
const updateTags = () => {
|
||||||
const oldValueIsOpen = tags["_isOpen"];
|
const oldValueIsOpen = tags["_isOpen"];
|
||||||
tags["_isOpen"] = oh.getState() ? "yes" : "no";
|
tags["_isOpen"] = oh.getState() ? "yes" : "no";
|
||||||
const comment = oh.getComment();
|
const comment = oh.getComment();
|
||||||
if (comment) {
|
if (comment) {
|
||||||
tags["_isOpen:description"] = comment;
|
tags["_isOpen:description"] = comment;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldValueIsOpen !== tags._isOpen) {
|
if (oldValueIsOpen !== tags._isOpen) {
|
||||||
tagsSource.ping();
|
tagsSource.ping();
|
||||||
}
|
}
|
||||||
|
|
||||||
const nextChange = oh.getNextChange();
|
const nextChange = oh.getNextChange();
|
||||||
if (nextChange !== undefined) {
|
if (nextChange !== undefined) {
|
||||||
window.setTimeout(
|
window.setTimeout(
|
||||||
updateTags,
|
updateTags,
|
||||||
(nextChange.getTime() - (new Date()).getTime())
|
(nextChange.getTime() - (new Date()).getTime())
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
updateTags();
|
||||||
updateTags();
|
} catch (e) {
|
||||||
}catch(e){
|
console.error("Error while parsing opening hours of ", tags.id, e);
|
||||||
console.error(e);
|
|
||||||
tags["_isOpen"] = "parse_error";
|
tags["_isOpen"] = "parse_error";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,8 +234,8 @@ export default class MetaTagging {
|
||||||
let carWidthUsed = (onewayCar ? 1 : 2) * carWidth;
|
let carWidthUsed = (onewayCar ? 1 : 2) * carWidth;
|
||||||
properties["_width:needed:cars"] = Utils.Round(carWidthUsed);
|
properties["_width:needed:cars"] = Utils.Round(carWidthUsed);
|
||||||
properties["_width:needed:parking"] = Utils.Round(parallelParkingCount * carWidth)
|
properties["_width:needed:parking"] = Utils.Round(parallelParkingCount * carWidth)
|
||||||
|
|
||||||
|
|
||||||
let cyclistWidthUsed = 0;
|
let cyclistWidthUsed = 0;
|
||||||
if (cyclingAllowed) {
|
if (cyclingAllowed) {
|
||||||
cyclistWidthUsed = (onewayBike ? 1 : 2) * cyclistWidth;
|
cyclistWidthUsed = (onewayBike ? 1 : 2) * cyclistWidth;
|
||||||
|
@ -251,16 +250,16 @@ export default class MetaTagging {
|
||||||
carWidthUsed +
|
carWidthUsed +
|
||||||
cyclistWidthUsed +
|
cyclistWidthUsed +
|
||||||
parallelParkingCount * carWidthUsed;
|
parallelParkingCount * carWidthUsed;
|
||||||
properties["_width:needed:no_pedestrians"] =Utils.Round(targetWidthIgnoringPedestrians);
|
properties["_width:needed:no_pedestrians"] = Utils.Round(targetWidthIgnoringPedestrians);
|
||||||
|
|
||||||
const pedestriansNeed = Math.max(0, pedestrianFlowNeeded) * pedestrianWidth;
|
const pedestriansNeed = Math.max(0, pedestrianFlowNeeded) * pedestrianWidth;
|
||||||
const targetWidth = targetWidthIgnoringPedestrians + pedestriansNeed ;
|
const targetWidth = targetWidthIgnoringPedestrians + pedestriansNeed;
|
||||||
properties["_width:needed"] = Utils.Round(targetWidth);
|
properties["_width:needed"] = Utils.Round(targetWidth);
|
||||||
properties["_width:needed:pedestrians"] = Utils.Round(pedestriansNeed)
|
properties["_width:needed:pedestrians"] = Utils.Round(pedestriansNeed)
|
||||||
|
|
||||||
|
|
||||||
properties["_width:difference"] = Utils.Round(targetWidth - width );
|
properties["_width:difference"] = Utils.Round(targetWidth - width);
|
||||||
properties["_width:difference:no_pedestrians"] = Utils.Round(targetWidthIgnoringPedestrians - width) ;
|
properties["_width:difference:no_pedestrians"] = Utils.Round(targetWidthIgnoringPedestrians - width);
|
||||||
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -7,7 +7,15 @@
|
||||||
"de": "Mit Fahrrad zusammenhängendes Objekt"
|
"de": "Mit Fahrrad zusammenhängendes Objekt"
|
||||||
},
|
},
|
||||||
"minzoom": 13,
|
"minzoom": 13,
|
||||||
"overpassTags": {"or": ["theme~cycling|bicycle", "sport=cycling"]},
|
"overpassTags": {
|
||||||
|
"or": [
|
||||||
|
"theme~cycling|bicycle",
|
||||||
|
"sport=cycling",
|
||||||
|
"association~cycling|bicycle",
|
||||||
|
"ngo~cycling|bicycle",
|
||||||
|
"club~bicycle|cycling"
|
||||||
|
]
|
||||||
|
},
|
||||||
"title": {
|
"title": {
|
||||||
"render": {
|
"render": {
|
||||||
"en": "Bike related object",
|
"en": "Bike related object",
|
||||||
|
@ -18,7 +26,7 @@
|
||||||
"mappings": [
|
"mappings": [
|
||||||
{
|
{
|
||||||
"if": "name~*",
|
"if": "name~*",
|
||||||
"then":"<i>{name}</i>"
|
"then": "<i>{name}</i>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"if": "leisure=track",
|
"if": "leisure=track",
|
||||||
|
@ -30,32 +38,13 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"description": {},
|
"description": {},
|
||||||
"tagRenderings": [ "images",
|
"tagRenderings": [
|
||||||
|
"images",
|
||||||
{
|
"description",
|
||||||
"render": "<a href='{website}' target='_blank'>{website}</a>",
|
"website",
|
||||||
"freeform": {
|
"email",
|
||||||
"key": "website"
|
"phone",
|
||||||
}
|
"opening_hours"
|
||||||
},
|
|
||||||
{
|
|
||||||
"render": "<a href='tel:{phone}'>{phone}</a>",
|
|
||||||
"freeform": {
|
|
||||||
"key": "phone"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"render": "<a href='mailto:{email}' target='_blank'>{email}</a>",
|
|
||||||
"freeform": {
|
|
||||||
"key": "email"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"render": "{opening_hours_table(opening_hours)}",
|
|
||||||
"freeform": {
|
|
||||||
"key": "opening_hours"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"hideUnderlayingFeaturesMinPercentage": 0,
|
"hideUnderlayingFeaturesMinPercentage": 0,
|
||||||
"icon": {
|
"icon": {
|
||||||
|
|
Loading…
Reference in a new issue