import {LayerDefinition} from "../LayerDefinition"; import {And, Or, Tag} from "../../Logic/TagsFilter"; import {OperatorTag} from "../Questions/OperatorTag"; import * as L from "leaflet"; import FixedName from "../Questions/FixedName"; import { BikeParkingType } from "../Questions/BikeParkingType"; export class BikeParkings extends LayerDefinition { constructor() { super(); this.name = "bike_parking"; this.icon = "./assets/bike_pump.svg"; this.overpassFilter = new Or([ new And([ new Tag("amenity", "bicycle_parking") ]) ]); this.newElementTags = [ new Tag("amenity", "bicycle_parking"), ]; this.maxAllowedOverlapPercentage = 10; this.minzoom = 13; this.style = this.generateStyleFunction(); this.title = new FixedName("fietsparking"); this.elementsToShow = [ new OperatorTag(), new BikeParkingType() ]; } private generateStyleFunction() { const self = this; return function (properties: any) { // let questionSeverity = 0; // for (const qd of self.elementsToShow) { // if (qd.IsQuestioning(properties)) { // questionSeverity = Math.max(questionSeverity, qd.options.priority ?? 0); // } // } // let colormapping = { // 0: "#00bb00", // 1: "#00ff00", // 10: "#dddd00", // 20: "#ff0000" // }; // let colour = colormapping[questionSeverity]; // while (colour == undefined) { // questionSeverity--; // colour = colormapping[questionSeverity]; // } return { color: "#00bb00", icon: new L.icon({ iconUrl: self.icon, iconSize: [40, 40] }) }; }; } }