forked from MapComplete/MapComplete
99 lines
4.3 KiB
JavaScript
99 lines
4.3 KiB
JavaScript
"use strict";
|
|
var __extends = (this && this.__extends) || (function () {
|
|
var extendStatics = function (d, b) {
|
|
extendStatics = Object.setPrototypeOf ||
|
|
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
return extendStatics(d, b);
|
|
};
|
|
return function (d, b) {
|
|
extendStatics(d, b);
|
|
function __() { this.constructor = d; }
|
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
};
|
|
})();
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.Map = void 0;
|
|
var LayerDefinition_1 = require("../LayerDefinition");
|
|
var FixedText_1 = require("../Questions/FixedText");
|
|
var ImageCarouselWithUpload_1 = require("../../UI/Image/ImageCarouselWithUpload");
|
|
var TagRendering_1 = require("../TagRendering");
|
|
var TagsFilter_1 = require("../../Logic/TagsFilter");
|
|
var leaflet_1 = require("leaflet");
|
|
var Map = /** @class */ (function (_super) {
|
|
__extends(Map, _super);
|
|
function Map() {
|
|
var _this = _super.call(this) || this;
|
|
_this.name = "Map";
|
|
_this.title = new FixedText_1.default("Map");
|
|
_this.minzoom = 12;
|
|
_this.overpassFilter = new TagsFilter_1.Tag("information", "map");
|
|
_this.newElementTags = [new TagsFilter_1.Tag("tourism", "information"), new TagsFilter_1.Tag("information", "map")];
|
|
var isOsmSource = new TagsFilter_1.Tag("map_source", "OpenStreetMap");
|
|
_this.style = function (properties) {
|
|
var icon = "assets/map.svg";
|
|
if (isOsmSource.matchesProperties(properties)) {
|
|
icon = "assets/osm-logo-white-bg.svg";
|
|
var attr = properties["map_source:attribution"];
|
|
if (attr == "sticker") {
|
|
icon = "assets/map-stickered.svg";
|
|
}
|
|
else if (attr == "no") {
|
|
icon = "assets/osm-logo-buggy-attr.svg";
|
|
}
|
|
}
|
|
return {
|
|
color: "#000000",
|
|
icon: leaflet_1.default.icon({
|
|
iconUrl: icon,
|
|
iconSize: [50, 50]
|
|
})
|
|
};
|
|
};
|
|
_this.elementsToShow = [
|
|
new ImageCarouselWithUpload_1.ImageCarouselWithUploadConstructor(),
|
|
new TagRendering_1.TagRenderingOptions({
|
|
question: "Is this map based on OpenStreetMap?",
|
|
mappings: [
|
|
{
|
|
k: isOsmSource,
|
|
txt: "This map is based on OpenStreetMap"
|
|
},
|
|
],
|
|
freeform: {
|
|
key: "map_source",
|
|
renderTemplate: "The map data is based on {map_source}",
|
|
template: "The map data is based on $$$"
|
|
}
|
|
}),
|
|
new TagRendering_1.TagRenderingOptions({
|
|
question: "Is the attribution present?",
|
|
mappings: [
|
|
{
|
|
k: new TagsFilter_1.Tag("map_source:attribution", "yes"),
|
|
txt: "OpenStreetMap is clearly attribute, including the ODBL-license"
|
|
},
|
|
{
|
|
k: new TagsFilter_1.Tag("map_source:attribution", "incomplete"),
|
|
txt: "OpenStreetMap is clearly attribute, but the license is not mentioned"
|
|
},
|
|
{
|
|
k: new TagsFilter_1.Tag("map_source:attribution", "sticker"),
|
|
txt: "OpenStreetMap wasn't mentioned, but someone put an OpenStreetMap-sticker on it"
|
|
},
|
|
{
|
|
k: new TagsFilter_1.Tag("map_source:attribution", "no"),
|
|
txt: "There is no attribution at all"
|
|
},
|
|
{
|
|
k: new TagsFilter_1.Tag("map_source:attribution", "none"),
|
|
txt: "There is no attribution at all"
|
|
}
|
|
]
|
|
}).OnlyShowIf(new TagsFilter_1.Tag("map_source", "OpenStreetMap"))
|
|
];
|
|
return _this;
|
|
}
|
|
return Map;
|
|
}(LayerDefinition_1.LayerDefinition));
|
|
exports.Map = Map;
|