Add function to add points to the map

This commit is contained in:
Antonia 2025-03-13 14:41:28 +01:00
parent ec96e60f58
commit 4a77b88765

View file

@ -33,6 +33,45 @@ function onHashChange() {
map.on("moveend", update_hash); map.on("moveend", update_hash);
map.on("zoomend", update_hash); map.on("zoomend", update_hash);
let pointPaintRules = [
{
dataLayer: "punkte",
symbolizer: new protomapsL.CircleSymbolizer({
radius: 3,
fill: 'black',
stroke: 'white',
width: 1.5,
}),
filter: (z,f) => { return f.props.zoom < z }
}
]
let pointRules = [
{
dataLayer: "punkte",
symbolizer:
new protomapsL.OffsetTextSymbolizer({
labelProps: ["name_local", "name_lat"],
offsetX: 6,
offsetY: 4.5,
fill: 'black',
width: 2,
stroke: 'white',
lineHeight: 1.5,
letterSpacing: 1,
font: (z, f) => {
const size = protomapsL.linear([
[3, 10],
[10, 12],
])(z);
return `400 ${size}px sans-serif`;
},
}),
filter: (z,f) => { return f.props.zoom < z }
}
];
fetch("layers.json") fetch("layers.json")
.then((response) => response.json()) .then((response) => response.json())
.then((data) => { .then((data) => {
@ -54,17 +93,29 @@ fetch("layers.json")
} }
); );
const strecken = protomapsL.leafletLayer({ const strecken = protomapsL.leafletLayer({
url: "strecken.pmtiles", url: data["pmtiles_url"] ?? "strecken.pmtiles",
maxDataZoom: data["maxZoom"] ?? 10, maxDataZoom: data["maxZoom"] ?? 10,
maxZoom: 19, maxZoom: 19,
paintRules: rules, paintRules: rules,
}); });
osm.addTo(map); osm.addTo(map);
legend.addTo(map); legend.addTo(map);
strecken.addTo(map); strecken.addTo(map);
if ("points_url" in data) {
const points = protomapsL.leafletLayer({
url: data["points_url"],
maxDataZoom: data["maxZoom"] ?? 10,
maxZoom: 19,
labelRules: pointRules,
paintRules: pointPaintRules,
});
points.addTo(map);
}
}) })
let dirHandle; let dirHandle;
let editMode = false; let editMode = false;
let markers = []; let markers = [];