mapcomplete/Customizations/Layers/BikeCafes.ts

65 lines
2.2 KiB
TypeScript
Raw Normal View History

2020-07-29 15:55:50 +02:00
import {LayerDefinition} from "../LayerDefinition";
import FixedText from "../Questions/FixedText";
2020-09-10 19:33:06 +02:00
import ImageCarouselWithUploadConstructor from "../../UI/Image/ImageCarouselWithUpload";
2020-07-29 15:55:50 +02:00
import Translations from "../../UI/i18n/Translations";
import CafeName from "../Questions/bike/CafeName";
import {And, Or, RegexTag, Tag} from "../../Logic/Tags";
import {PhoneNumberQuestion} from "../Questions/PhoneNumberQuestion";
2020-07-29 15:55:50 +02:00
import Website from "../Questions/Website";
import CafeRepair from "../Questions/bike/CafeRepair";
import CafeDiy from "../Questions/bike/CafeDiy";
import CafePump from "../Questions/bike/CafePump";
2020-07-29 19:02:36 +02:00
import {EmailQuestion} from "../Questions/EmailQuestion";
2020-07-29 15:55:50 +02:00
export default class BikeCafes extends LayerDefinition {
private readonly to = Translations.t.cyclofix.cafe
constructor() {
2020-07-31 04:58:58 +02:00
super("bikecafe")
2020-07-29 17:16:59 +02:00
this.name = this.to.name
this.icon = "./assets/bike/cafe.svg"
2020-07-29 15:55:50 +02:00
this.overpassFilter = new And([
new RegexTag(/^amenity$/, /^pub|bar|cafe$/),
2020-07-29 15:55:50 +02:00
new Or([
new RegexTag(/^service:bicycle:/, /.*/),
new RegexTag(/^pub$/, /^cycling|bicycle$/),
new RegexTag(/^theme$/, /^cycling|bicycle$/),
2020-07-29 15:55:50 +02:00
])
])
this.presets = [
{
title: Translations.t.cyclofix.cafe.title,
tags : [
new Tag("amenity", "pub"),
new Tag("pub", "cycling"),
]
}
]
2020-07-29 15:55:50 +02:00
this.maxAllowedOverlapPercentage = 10;
2020-07-29 17:16:59 +02:00
this.minzoom = 13
this.style = () => ({
color: "#00bb00",
icon: {
iconUrl: "./assets/bike/cafe.svg",
iconSize: [50, 50],
iconAnchor: [25, 50]
}
});
2020-07-29 15:55:50 +02:00
this.title = new FixedText(this.to.title)
this.elementsToShow = [
new ImageCarouselWithUploadConstructor(),
new CafeName(),
new Website("{name}"),
2020-07-29 19:02:36 +02:00
new PhoneNumberQuestion("{name}"),
new EmailQuestion("{name}"),
2020-07-29 15:55:50 +02:00
new CafeRepair(),
new CafeDiy(),
new CafePump()
2020-07-29 17:16:59 +02:00
]
this.wayHandling = LayerDefinition.WAYHANDLING_CENTER_AND_WAY
2020-07-29 15:55:50 +02:00
}
2020-07-29 19:02:36 +02:00
}