From abac65d6117d632c3042747a17eac3f18b6736e9 Mon Sep 17 00:00:00 2001
From: gluap
Date: Sun, 19 May 2024 08:49:00 +0000
Subject: [PATCH] deploy:
openbikesensor/openbikesensor.github.io@60fdfc875879d42a5d856e6fdd729ea774910f5d
---
index.xml | 2 +-
map/basemap.json | 211 ++++
map/darkmatter.json | 2111 +++++++++++++++++++++++++++++++++++++++
map/einzelpersonen.json | 193 ++++
map/index.html | 4 +-
map/initiativen.json | 747 ++++++++++++++
map/map.html | 217 ++++
map/map_indicator.png | Bin 0 -> 4516 bytes
map/map_indicator.svg | 52 +
map/pin.png | Bin 0 -> 7384 bytes
map/pin.svg | 168 ++++
map/style-cdn.json | 2066 ++++++++++++++++++++++++++++++++++++++
sitemap.xml | 2 +-
13 files changed, 5769 insertions(+), 4 deletions(-)
create mode 100644 map/basemap.json
create mode 100644 map/darkmatter.json
create mode 100644 map/einzelpersonen.json
create mode 100644 map/initiativen.json
create mode 100644 map/map.html
create mode 100644 map/map_indicator.png
create mode 100644 map/map_indicator.svg
create mode 100644 map/pin.png
create mode 100644 map/pin.svg
create mode 100644 map/style-cdn.json
diff --git a/index.xml b/index.xml
index 2fe627b..ce2568c 100644
--- a/index.xml
+++ b/index.xml
@@ -37,5 +37,5 @@ Das Projekt OpenBikeSensor und unser Überholabstandsmesser werden dann als Teil
Wir freuen uns sehr über diesen gelungenen Beitrag. In den Tagen nach der Ausstrahlung kammen immer mehr neue Mitglieder in den Slack, die durch diese öffentliche Aufmerksamkeit von OpenBikeSensor erfahren haben, und nun Teil der immer weiter wachsenden Community geworden sind.OpenBikeSensor goes LGPL https://test.openbikesensor.org/blog/2021/03/23/openbikesensor-goes-lgpl/Tue, 23 Mar 2021 00:00:00 +0000 https://test.openbikesensor.org/blog/2021/03/23/openbikesensor-goes-lgpl/ Als Open-Source-Projekt freuen wir uns, bekanntgeben zu können, dass wir uns auf eine gemeinsame Lizenz für unsere bestehenden und zukünftigen Software-, Design- und Dokumentationswerke geeinigt haben.
Nach langer Diskussion hat sich die Community über die Grundsätze einer freien und quelloffenen Arbeit verständigt, die das Projekt hoffentlich lange begleiten werden.
Freier Zugang zu Information sowie deren freie Verwendung ist ein Grundsatz, der uns allen sehr wichtig ist. Daher stand auch nie wirklich zur Diskussion, eine Open-Source-Lizenz für unsere Werke zu wählen. Gerätevarianten https://test.openbikesensor.org/device/Mon, 01 Jan 0001 00:00:00 +0000 https://test.openbikesensor.org/device/ Das Messgerät Kern unseres Projektes ist ein Gerät, das die Überholabstände beim Radfahren aufzeichnet. Dieses Gerät haben wir als quelloffenes Design entwickelt, sodass du, wenn du magst, dir selbst eines bauen kannst und darfst! Hier siehst du alle Varianten.
-OpenBikeSensor Lite In Entwicklung klein und leicht minimaler Bauaufwand wird mit Android-Handy und App kombiniert sehr kostengünstig wetterfest Entwicklung verfolgen OpenBikeSensor Classic Jetzt verfügbar robust und erprobt voller Funktionsumfang ohne Handy aus fertigen Modulen zusammengebaut hohe Akkulaufzeit erweiterbar Zur Bauanleitung OpenBikeSensor Pro In Entwicklung voller Funktionsumfang ohne Handy bestückt bestellbar wetterfest Entwicklung verfolgen Karte der Initiativen https://test.openbikesensor.org/map/Mon, 01 Jan 0001 00:00:00 +0000 https://test.openbikesensor.org/map/ Karte In vielen Regionen gibt es schon OpenBikeSensoren! Suchst du Gleichgesinnte oder Ansprechpartner in deiner Gegend? Die Karte hilft dir dabei. Möchtest du selbst oder deine Initiative noch auf der Karte auftauchen? Im Forum erfährst du, wie! Kurzlinks https://test.openbikesensor.org/aliases/Mon, 01 Jan 0001 00:00:00 +0000 https://test.openbikesensor.org/aliases/ Kurzlinks Diese (interne) Seite zeigt, welche Schnell-Links auf dieser Webseite verfügbar sind: SeiteAlias Hinweise für Sammelbestellungen https://test.openbikesensor.org/docs/classic/general/collective-order Schnellstart-Anleitung https://test.openbikesensor.org/start Montage des Sensors am Fahrrad https://test.openbikesensor.org/montage Bauteile https://test.openbikesensor.org/bauteile Bauteile https://test.openbikesensor.org/bauteile/v00.03.12 Bauteile https://test.openbikesensor.org/docs/hardware/v00.03.12/parts Platine https://test.openbikesensor.org/docs/hardware/general/pcb Gehäuse https://test.openbikesensor.org/docs/hardware/general/case OpenBikeSensor Classic https://test.openbikesensor.org/docs/hardware Bauanleitung (OpenBikeSensor Classic 1.0.0) https://test.openbikesensor.org/bauanleitung/classic Bauanleitung (OpenBikeSensor Classic 1.0.0) https://test.openbikesensor.org/bauanleitung Firmware https://test.openbikesensor.org/flash Bauanleitung für den OpenBikeSensor v00.03.12 https://test.openbikesensor.org/bauanleitung/v00.03.12 Bauanleitung für den OpenBikeSensor v00.03.12 https://test.openbikesensor.org/docs/hardware/v00.03.12/build-instructions Community https://test.openbikesensor.org/kontakt Community https://test.openbikesensor.org/slack Community https://test.openbikesensor.org/project Karte der Initiativen https://test. OpenBikeSensor e. V. https://test.openbikesensor.org/verein/Mon, 01 Jan 0001 00:00:00 +0000 https://test.openbikesensor.org/verein/ OpenBikeSensor e. V. Im Dezember 2021 haben wir gemeinsam einen Verein gegründet, um uns die Arbeit zu erleichtern. Der Verein trägt den Namen OpenBikeSensor e. V. und ist beim Amtsgericht Stuttgart im Vereinsregister eingetragen.
+OpenBikeSensor Lite In Entwicklung klein und leicht minimaler Bauaufwand wird mit Android-Handy und App kombiniert sehr kostengünstig wetterfest Entwicklung verfolgen OpenBikeSensor Classic Jetzt verfügbar robust und erprobt voller Funktionsumfang ohne Handy aus fertigen Modulen zusammengebaut hohe Akkulaufzeit erweiterbar Zur Bauanleitung OpenBikeSensor Pro In Entwicklung voller Funktionsumfang ohne Handy bestückt bestellbar wetterfest Entwicklung verfolgen Kurzlinks https://test.openbikesensor.org/aliases/Mon, 01 Jan 0001 00:00:00 +0000 https://test.openbikesensor.org/aliases/ Kurzlinks Diese (interne) Seite zeigt, welche Schnell-Links auf dieser Webseite verfügbar sind: SeiteAlias Hinweise für Sammelbestellungen https://test.openbikesensor.org/docs/classic/general/collective-order Schnellstart-Anleitung https://test.openbikesensor.org/start Montage des Sensors am Fahrrad https://test.openbikesensor.org/montage Bauteile https://test.openbikesensor.org/bauteile Bauteile https://test.openbikesensor.org/bauteile/v00.03.12 Bauteile https://test.openbikesensor.org/docs/hardware/v00.03.12/parts Platine https://test.openbikesensor.org/docs/hardware/general/pcb Gehäuse https://test.openbikesensor.org/docs/hardware/general/case OpenBikeSensor Classic https://test.openbikesensor.org/docs/hardware Bauanleitung (OpenBikeSensor Classic 1.0.0) https://test.openbikesensor.org/bauanleitung/classic Bauanleitung (OpenBikeSensor Classic 1.0.0) https://test.openbikesensor.org/bauanleitung Firmware https://test.openbikesensor.org/flash Bauanleitung für den OpenBikeSensor v00.03.12 https://test.openbikesensor.org/bauanleitung/v00.03.12 Bauanleitung für den OpenBikeSensor v00.03.12 https://test.openbikesensor.org/docs/hardware/v00.03.12/build-instructions Community https://test.openbikesensor.org/kontakt Community https://test.openbikesensor.org/slack Community https://test.openbikesensor.org/project Karte der Initiativen https://test. OpenBikeSensor e. V. https://test.openbikesensor.org/verein/Mon, 01 Jan 0001 00:00:00 +0000 https://test.openbikesensor.org/verein/ OpenBikeSensor e. V. Im Dezember 2021 haben wir gemeinsam einen Verein gegründet, um uns die Arbeit zu erleichtern. Der Verein trägt den Namen OpenBikeSensor e. V. und ist beim Amtsgericht Stuttgart im Vereinsregister eingetragen.
Die Gründung eines Vereins wurde speziell für die Vereinfachung rechtlicher Fragen diskutiert und angestrebt. Dazu zählen hauptsächlich die Verantwortlichkeiten für unsere Online-Präsenz und eine gewisse zivilrechtliche Haftbarkeit. Eine Auswirkung auf die Weiterentwicklung und den Einsatz der Technologie durch die Community soll dies nicht haben.
\ No newline at end of file
diff --git a/map/basemap.json b/map/basemap.json
new file mode 100644
index 0000000..9ef7219
--- /dev/null
+++ b/map/basemap.json
@@ -0,0 +1,211 @@
+{
+ "tiles": [
+ "http://localhost:8000/data/basemap/{z}/{x}/{y}.pbf"
+ ],
+ "name": "Tilemaker to OpenMapTiles schema",
+ "format": "pbf",
+ "basename": "basemap.mbtiles",
+ "id": "basemap",
+ "type": "baselayer",
+ "version": "3.0",
+ "description": "Tile config based on OpenMapTiles schema",
+ "minzoom": 0,
+ "maxzoom": 14,
+ "bounds": [
+ -62.01719,
+ -21.72922,
+ 56.11999,
+ 81.05195
+ ],
+ "center": [
+ -2.9486,
+ 29.661365,
+ 7
+ ],
+ "vector_layers": [
+ {
+ "id": "place",
+ "fields": {
+ "capital": "Number",
+ "class": "String",
+ "iso_a2": "String",
+ "name:latin": "String",
+ "rank": "Number"
+ },
+ "minzoom": 0,
+ "maxzoom": 14
+ },
+ {
+ "id": "boundary",
+ "fields": {
+ "admin_level": "Number",
+ "disputed": "Number"
+ },
+ "minzoom": 0,
+ "maxzoom": 14
+ },
+ {
+ "id": "poi",
+ "fields": {
+ "class": "String",
+ "indoor": "Boolean",
+ "layer": "Number",
+ "level": "Number",
+ "name:latin": "String",
+ "rank": "Number",
+ "subclass": "String"
+ },
+ "minzoom": 12,
+ "maxzoom": 14
+ },
+ {
+ "id": "housenumber",
+ "fields": {
+ "housenumber": "String"
+ },
+ "minzoom": 14,
+ "maxzoom": 14
+ },
+ {
+ "id": "waterway",
+ "fields": {
+ "brunnel": "String",
+ "class": "String",
+ "intermittent": "Number",
+ "name:latin": "String"
+ },
+ "minzoom": 8,
+ "maxzoom": 14
+ },
+ {
+ "id": "transportation",
+ "fields": {
+ "access": "String",
+ "bicycle": "String",
+ "brunnel": "String",
+ "class": "String",
+ "expressway": "Boolean",
+ "foot": "String",
+ "horse": "String",
+ "layer": "Number",
+ "mtb_scale": "String",
+ "oneway": "Number",
+ "service": "String",
+ "surface": "String",
+ "toll": "Boolean"
+ },
+ "minzoom": 4,
+ "maxzoom": 14
+ },
+ {
+ "id": "transportation_name",
+ "fields": {
+ "class": "String",
+ "name:latin": "String",
+ "network": "String",
+ "ref": "String",
+ "ref_length": "Number"
+ },
+ "minzoom": 8,
+ "maxzoom": 14
+ },
+ {
+ "id": "building",
+ "fields": {
+ "class": "String",
+ "indoor": "Boolean",
+ "layer": "Number",
+ "name:latin": "String",
+ "rank": "Number",
+ "render_height": "Number",
+ "render_min_height": "Number",
+ "subclass": "String"
+ },
+ "minzoom": 13,
+ "maxzoom": 14
+ },
+ {
+ "id": "water",
+ "fields": {
+ "class": "String",
+ "intermittent": "String"
+ },
+ "minzoom": 6,
+ "maxzoom": 14
+ },
+ {
+ "id": "water_name",
+ "fields": {
+ "class": "String",
+ "name:latin": "String"
+ },
+ "minzoom": 14,
+ "maxzoom": 14
+ },
+ {
+ "id": "aeroway",
+ "fields": {
+ "class": "String",
+ "ref": "String"
+ },
+ "minzoom": 11,
+ "maxzoom": 14
+ },
+ {
+ "id": "aerodrome_label",
+ "fields": {
+ "class": "String",
+ "ele": "Number",
+ "ele_ft": "Number",
+ "iata": "String",
+ "icao": "String",
+ "name:latin": "String"
+ },
+ "minzoom": 10,
+ "maxzoom": 14
+ },
+ {
+ "id": "park",
+ "fields": {
+ "class": "String",
+ "name:latin": "String"
+ },
+ "minzoom": 11,
+ "maxzoom": 14
+ },
+ {
+ "id": "landuse",
+ "fields": {
+ "class": "String"
+ },
+ "minzoom": 4,
+ "maxzoom": 14
+ },
+ {
+ "id": "landcover",
+ "fields": {
+ "class": "String",
+ "indoor": "Boolean",
+ "layer": "Number",
+ "name:latin": "String",
+ "rank": "Number",
+ "subclass": "String"
+ },
+ "minzoom": 0,
+ "maxzoom": 14
+ },
+ {
+ "id": "mountain_peak",
+ "fields": {
+ "class": "String",
+ "ele": "Number",
+ "ele_ft": "Number",
+ "name:latin": "String",
+ "rank": "Number"
+ },
+ "minzoom": 11,
+ "maxzoom": 14
+ }
+ ],
+ "tilejson": "2.0.0"
+}
\ No newline at end of file
diff --git a/map/darkmatter.json b/map/darkmatter.json
new file mode 100644
index 0000000..8f9f110
--- /dev/null
+++ b/map/darkmatter.json
@@ -0,0 +1,2111 @@
+{
+ "version": 8,
+ "name": "Bright",
+ "center": [0, 0],
+ "zoom": 1,
+ "bearing": 0,
+ "pitch": 0,
+ "sources": {
+ "openmaptiles": {
+ "type": "vector",
+ "url": "https://tiles.openbikesensor.org/data/basemap.json"
+ }
+ },
+ "sprite": "https://openmaptiles.github.io/osm-bright-gl-style/sprite",
+ "glyphs": "https://tiles.openbikesensor.org/fonts/{fontstack}/{range}.pbf?key={key}",
+ "layers": [
+ {
+ "id": "background",
+ "type": "background",
+ "paint": {"background-color": "#f8f4f0"}
+ },
+ {
+ "id": "landcover-glacier",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "filter": ["==", "subclass", "glacier"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#fff",
+ "fill-opacity": {"base": 1, "stops": [[0, 0.9], [10, 0.3]]}
+ }
+ },
+ {
+ "id": "landuse-residential",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": [
+ "all",
+ ["in", "class", "residential", "suburb", "neighbourhood"]
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": {
+ "base": 1,
+ "stops": [
+ [12, "hsla(30, 19%, 90%, 0.4)"],
+ [16, "hsla(30, 19%, 90%, 0.2)"]
+ ]
+ }
+ }
+ },
+ {
+ "id": "landuse-commercial",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": [
+ "all",
+ ["==", "$type", "Polygon"],
+ ["==", "class", "commercial"]
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "hsla(0, 60%, 87%, 0.23)"}
+ },
+ {
+ "id": "landuse-industrial",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": [
+ "all",
+ ["==", "$type", "Polygon"],
+ ["in", "class", "industrial", "garages", "dam"]
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "hsla(49, 100%, 88%, 0.34)"}
+ },
+ {
+ "id": "landuse-cemetery",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "cemetery"],
+ "paint": {"fill-color": "#e0e4dd"}
+ },
+ {
+ "id": "landuse-hospital",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "hospital"],
+ "paint": {"fill-color": "#fde"}
+ },
+ {
+ "id": "landuse-school",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "school"],
+ "paint": {"fill-color": "#f0e8f8"}
+ },
+ {
+ "id": "landuse-railway",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "railway"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "hsla(30, 19%, 90%, 0.4)"}
+ },
+ {
+ "id": "landcover-wood",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "filter": ["==", "class", "wood"],
+ "paint": {
+ "fill-antialias": {"base": 1, "stops": [[0, false], [9, true]]},
+ "fill-color": "#6a4",
+ "fill-opacity": 0.1,
+ "fill-outline-color": "hsla(0, 0%, 0%, 0.03)"
+ }
+ },
+ {
+ "id": "landcover-grass",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "filter": ["==", "class", "grass"],
+ "paint": {"fill-color": "#d8e8c8", "fill-opacity": 1}
+ },
+ {
+ "id": "landcover-grass-park",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "park",
+ "filter": ["==", "class", "public_park"],
+ "paint": {"fill-color": "#d8e8c8", "fill-opacity": 0.8}
+ },
+ {
+ "id": "waterway_tunnel",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["in", "class", "river", "stream", "canal"],
+ ["==", "brunnel", "tunnel"]
+ ],
+ "layout": {"line-cap": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-dasharray": [2, 4],
+ "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 6]]}
+ }
+ },
+ {
+ "id": "waterway-other",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["!in", "class", "canal", "river", "stream"],
+ ["==", "intermittent", 0]
+ ],
+ "layout": {"line-cap": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 2]]}
+ }
+ },
+ {
+ "id": "waterway-other-intermittent",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["!in", "class", "canal", "river", "stream"],
+ ["==", "intermittent", 1]
+ ],
+ "layout": {"line-cap": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-dasharray": [4, 3],
+ "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 2]]}
+ }
+ },
+ {
+ "id": "waterway-stream-canal",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["in", "class", "canal", "stream"],
+ ["!=", "brunnel", "tunnel"],
+ ["==", "intermittent", 0]
+ ],
+ "layout": {"line-cap": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 6]]}
+ }
+ },
+ {
+ "id": "waterway-stream-canal-intermittent",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["in", "class", "canal", "stream"],
+ ["!=", "brunnel", "tunnel"],
+ ["==", "intermittent", 1]
+ ],
+ "layout": {"line-cap": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-dasharray": [4, 3],
+ "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 6]]}
+ }
+ },
+ {
+ "id": "waterway-river",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["==", "class", "river"],
+ ["!=", "brunnel", "tunnel"],
+ ["==", "intermittent", 0]
+ ],
+ "layout": {"line-cap": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-width": {"base": 1.2, "stops": [[10, 0.8], [20, 6]]}
+ }
+ },
+ {
+ "id": "waterway-river-intermittent",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["==", "class", "river"],
+ ["!=", "brunnel", "tunnel"],
+ ["==", "intermittent", 1]
+ ],
+ "layout": {"line-cap": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-dasharray": [3, 2.5],
+ "line-width": {"base": 1.2, "stops": [[10, 0.8], [20, 6]]}
+ }
+ },
+ {
+ "id": "water-offset",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "water",
+ "maxzoom": 8,
+ "filter": ["==", "$type", "Polygon"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#a0c8f0",
+ "fill-opacity": 1,
+ "fill-translate": {"base": 1, "stops": [[6, [2, 0]], [8, [0, 0]]]}
+ }
+ },
+ {
+ "id": "water",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "water",
+ "filter": ["all", ["!=", "intermittent", 1], ["!=", "brunnel", "tunnel"]],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "hsl(210, 67%, 85%)"}
+ },
+ {
+ "id": "water-intermittent",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "water",
+ "filter": ["all", ["==", "intermittent", 1]],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "hsl(210, 67%, 85%)", "fill-opacity": 0.7}
+ },
+ {
+ "id": "water-pattern",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "water",
+ "filter": ["all"],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-pattern": "wave", "fill-translate": [0, 2.5]}
+ },
+ {
+ "id": "landcover-ice-shelf",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "filter": ["==", "subclass", "ice_shelf"],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#fff",
+ "fill-opacity": {"base": 1, "stops": [[0, 0.9], [10, 0.3]]}
+ }
+ },
+ {
+ "id": "landcover-sand",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "filter": ["all", ["==", "class", "sand"]],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-color": "rgba(245, 238, 188, 1)", "fill-opacity": 1}
+ },
+ {
+ "id": "building",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "building",
+ "layout": {"visibility": "none"},
+ "paint": {
+ "fill-antialias": true,
+ "fill-color": {"base": 1, "stops": [[15.5, "#f2eae2"], [16, "#dfdbd7"]]}
+ }
+ },
+ {
+ "id": "building-top",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "building",
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "#f2eae2",
+ "fill-opacity": {"base": 1, "stops": [[13, 0], [16, 1]]},
+ "fill-outline-color": "#dfdbd7",
+ "fill-translate": [0, 0]
+ }
+ },
+ {
+ "id": "tunnel-service-track-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "tunnel"],
+ ["in", "class", "service", "track"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": {"base": 1.2, "stops": [[15, 1], [16, 4], [20, 11]]}
+ }
+ },
+ {
+ "id": "tunnel-minor-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": ["all", ["==", "brunnel", "tunnel"], ["==", "class", "minor"]],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-opacity": {"stops": [[12, 0], [12.5, 1]]},
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12, 0.5], [13, 1], [14, 4], [20, 15]]
+ }
+ }
+ },
+ {
+ "id": "tunnel-secondary-tertiary-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "tunnel"],
+ ["in", "class", "secondary", "tertiary"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": 1,
+ "line-width": {"base": 1.2, "stops": [[8, 1.5], [20, 17]]}
+ }
+ },
+ {
+ "id": "tunnel-trunk-primary-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "tunnel"],
+ ["in", "class", "primary", "trunk"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]
+ }
+ }
+ },
+ {
+ "id": "tunnel-motorway-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "tunnel"],
+ ["==", "class", "motorway"]
+ ],
+ "layout": {"line-join": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": {
+ "base": 1.2,
+ "stops": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]
+ }
+ }
+ },
+ {
+ "id": "tunnel-path",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "brunnel", "tunnel"], ["==", "class", "path"]]
+ ],
+ "paint": {
+ "line-color": "#cba",
+ "line-dasharray": [1.5, 0.75],
+ "line-width": {"base": 1.2, "stops": [[15, 1.2], [20, 4]]}
+ }
+ },
+ {
+ "id": "tunnel-service-track",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "tunnel"],
+ ["in", "class", "service", "track"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": {"base": 1.2, "stops": [[15.5, 0], [16, 2], [20, 7.5]]}
+ }
+ },
+ {
+ "id": "tunnel-minor",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "tunnel"],
+ ["==", "class", "minor_road"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-opacity": 1,
+ "line-width": {"base": 1.2, "stops": [[13.5, 0], [14, 2.5], [20, 11.5]]}
+ }
+ },
+ {
+ "id": "tunnel-secondary-tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "tunnel"],
+ ["in", "class", "secondary", "tertiary"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 10]]}
+ }
+ },
+ {
+ "id": "tunnel-trunk-primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "tunnel"],
+ ["in", "class", "primary", "trunk"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}
+ }
+ },
+ {
+ "id": "tunnel-motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "tunnel"],
+ ["==", "class", "motorway"]
+ ],
+ "layout": {"line-join": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#ffdaa6",
+ "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}
+ }
+ },
+ {
+ "id": "tunnel-railway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": ["all", ["==", "brunnel", "tunnel"], ["==", "class", "rail"]],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [2, 2],
+ "line-width": {"base": 1.4, "stops": [[14, 0.4], [15, 0.75], [20, 2]]}
+ }
+ },
+ {
+ "id": "ferry",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": ["all", ["in", "class", "ferry"]],
+ "layout": {"line-join": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "rgba(108, 159, 182, 1)",
+ "line-dasharray": [2, 2],
+ "line-width": 1.1
+ }
+ },
+ {
+ "id": "aeroway-taxiway-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 12,
+ "filter": ["all", ["in", "class", "taxiway"]],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgba(153, 153, 153, 1)",
+ "line-opacity": 1,
+ "line-width": {"base": 1.5, "stops": [[11, 2], [17, 12]]}
+ }
+ },
+ {
+ "id": "aeroway-runway-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 12,
+ "filter": ["all", ["in", "class", "runway"]],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgba(153, 153, 153, 1)",
+ "line-opacity": 1,
+ "line-width": {"base": 1.5, "stops": [[11, 5], [17, 55]]}
+ }
+ },
+ {
+ "id": "aeroway-area",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 4,
+ "filter": [
+ "all",
+ ["==", "$type", "Polygon"],
+ ["in", "class", "runway", "taxiway"]
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-color": "rgba(255, 255, 255, 1)",
+ "fill-opacity": {"base": 1, "stops": [[13, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "aeroway-taxiway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 4,
+ "filter": [
+ "all",
+ ["in", "class", "taxiway"],
+ ["==", "$type", "LineString"]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 1)",
+ "line-opacity": {"base": 1, "stops": [[11, 0], [12, 1]]},
+ "line-width": {"base": 1.5, "stops": [[11, 1], [17, 10]]}
+ }
+ },
+ {
+ "id": "aeroway-runway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 4,
+ "filter": [
+ "all",
+ ["in", "class", "runway"],
+ ["==", "$type", "LineString"]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgba(255, 255, 255, 1)",
+ "line-opacity": {"base": 1, "stops": [[11, 0], [12, 1]]},
+ "line-width": {"base": 1.5, "stops": [[11, 4], [17, 50]]}
+ }
+ },
+ {
+ "id": "road_area_pier",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": ["all", ["==", "$type", "Polygon"], ["==", "class", "pier"]],
+ "layout": {"visibility": "visible"},
+ "paint": {"fill-antialias": true, "fill-color": "#f8f4f0"}
+ },
+ {
+ "id": "road_pier",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": ["all", ["==", "$type", "LineString"], ["in", "class", "pier"]],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#f8f4f0",
+ "line-width": {"base": 1.2, "stops": [[15, 1], [17, 4]]}
+ }
+ },
+ {
+ "id": "highway-area",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": ["all", ["==", "$type", "Polygon"], ["!in", "class", "pier"]],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "fill-antialias": false,
+ "fill-color": "hsla(0, 0%, 89%, 0.56)",
+ "fill-opacity": 0.9,
+ "fill-outline-color": "#cfcdca"
+ }
+ },
+ {
+ "id": "highway-motorway-link-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["==", "class", "motorway_link"]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12, 1], [13, 3], [14, 4], [20, 15]]
+ }
+ }
+ },
+ {
+ "id": "highway-link-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ [
+ "in",
+ "class",
+ "primary_link",
+ "secondary_link",
+ "tertiary_link",
+ "trunk_link"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12, 1], [13, 3], [14, 4], [20, 15]]
+ }
+ }
+ },
+ {
+ "id": "highway-minor-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "brunnel", "tunnel"],
+ ["in", "class", "minor", "service", "track"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-opacity": {"stops": [[12, 0], [12.5, 1]]},
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12, 0.5], [13, 1], [14, 4], [20, 15]]
+ }
+ }
+ },
+ {
+ "id": "highway-secondary-tertiary-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["in", "class", "secondary", "tertiary"]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": 1,
+ "line-width": {"base": 1.2, "stops": [[8, 1.5], [20, 17]]}
+ }
+ },
+ {
+ "id": "highway-primary-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 5,
+ "filter": [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["in", "class", "primary"]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": {"stops": [[7, 0], [8, 1]]},
+ "line-width": {
+ "base": 1.2,
+ "stops": [[7, 0], [8, 0.6], [9, 1.5], [20, 22]]
+ }
+ }
+ },
+ {
+ "id": "highway-trunk-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 5,
+ "filter": [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["in", "class", "trunk"]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": {"stops": [[5, 0], [6, 1]]},
+ "line-width": {
+ "base": 1.2,
+ "stops": [[5, 0], [6, 0.6], [7, 1.5], [20, 22]]
+ }
+ }
+ },
+ {
+ "id": "highway-motorway-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 4,
+ "filter": [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["==", "class", "motorway"]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": {"stops": [[4, 0], [5, 1]]},
+ "line-width": {
+ "base": 1.2,
+ "stops": [[4, 0], [5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]
+ }
+ }
+ },
+ {
+ "id": "highway-path",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "path"]]
+ ],
+ "paint": {
+ "line-color": "#cba",
+ "line-dasharray": [1.5, 0.75],
+ "line-width": {"base": 1.2, "stops": [[15, 1.2], [20, 4]]}
+ }
+ },
+ {
+ "id": "highway-motorway-link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["==", "class", "motorway_link"]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]
+ }
+ }
+ },
+ {
+ "id": "highway-link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ [
+ "in",
+ "class",
+ "primary_link",
+ "secondary_link",
+ "tertiary_link",
+ "trunk_link"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#fea",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]
+ }
+ }
+ },
+ {
+ "id": "highway-minor",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "brunnel", "tunnel"],
+ ["in", "class", "minor", "service", "track"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-opacity": 1,
+ "line-width": {"base": 1.2, "stops": [[13.5, 0], [14, 2.5], [20, 11.5]]}
+ }
+ },
+ {
+ "id": "highway-secondary-tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["in", "class", "secondary", "tertiary"]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#fea",
+ "line-width": {"base": 1.2, "stops": [[6.5, 0], [8, 0.5], [20, 13]]}
+ }
+ },
+ {
+ "id": "highway-primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["in", "class", "primary"]
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#fea",
+ "line-width": {"base": 1.2, "stops": [[8.5, 0], [9, 0.5], [20, 18]]}
+ }
+ },
+ {
+ "id": "highway-trunk",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["in", "class", "trunk"]
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#fea",
+ "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}
+ }
+ },
+ {
+ "id": "highway-motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 5,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["==", "class", "motorway"]
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}
+ }
+ },
+ {
+ "id": "railway-transit",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "class", "transit"], ["!in", "brunnel", "tunnel"]]
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "line-color": "hsla(0, 0%, 73%, 0.77)",
+ "line-width": {"base": 1.4, "stops": [[14, 0.4], [20, 1]]}
+ }
+ },
+ {
+ "id": "railway-transit-hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "class", "transit"], ["!in", "brunnel", "tunnel"]]
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "line-color": "hsla(0, 0%, 73%, 0.68)",
+ "line-dasharray": [0.2, 8],
+ "line-width": {"base": 1.4, "stops": [[14.5, 0], [15, 2], [20, 6]]}
+ }
+ },
+ {
+ "id": "railway-service",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "class", "rail"], ["has", "service"]]
+ ],
+ "paint": {
+ "line-color": "hsla(0, 0%, 73%, 0.77)",
+ "line-width": {"base": 1.4, "stops": [[14, 0.4], [20, 1]]}
+ }
+ },
+ {
+ "id": "railway-service-hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "class", "rail"], ["has", "service"]]
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "line-color": "hsla(0, 0%, 73%, 0.68)",
+ "line-dasharray": [0.2, 8],
+ "line-width": {"base": 1.4, "stops": [[14.5, 0], [15, 2], [20, 6]]}
+ }
+ },
+ {
+ "id": "railway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!has", "service"],
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["==", "class", "rail"]
+ ]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": {"base": 1.4, "stops": [[14, 0.4], [15, 0.75], [20, 2]]}
+ }
+ },
+ {
+ "id": "railway-hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!has", "service"],
+ ["!in", "brunnel", "bridge", "tunnel"],
+ ["==", "class", "rail"]
+ ]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": {"base": 1.4, "stops": [[14.5, 0], [15, 3], [20, 8]]}
+ }
+ },
+ {
+ "id": "bridge-motorway-link-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ ["==", "class", "motorway_link"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12, 1], [13, 3], [14, 4], [20, 15]]
+ }
+ }
+ },
+ {
+ "id": "bridge-link-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ [
+ "in",
+ "class",
+ "primary_link",
+ "secondary_link",
+ "tertiary_link",
+ "trunk_link"
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12, 1], [13, 3], [14, 4], [20, 15]]
+ }
+ }
+ },
+ {
+ "id": "bridge-secondary-tertiary-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ ["in", "class", "secondary", "tertiary"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-opacity": 1,
+ "line-width": {"base": 1.2, "stops": [[8, 1.5], [20, 28]]}
+ }
+ },
+ {
+ "id": "bridge-trunk-primary-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ ["in", "class", "primary", "trunk"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "hsl(28, 76%, 67%)",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 26]]
+ }
+ }
+ },
+ {
+ "id": "bridge-motorway-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ ["==", "class", "motorway"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]
+ }
+ }
+ },
+ {
+ "id": "bridge-path-casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "brunnel", "bridge"], ["==", "class", "path"]]
+ ],
+ "paint": {
+ "line-color": "#f8f4f0",
+ "line-width": {"base": 1.2, "stops": [[15, 1.2], [20, 18]]}
+ }
+ },
+ {
+ "id": "bridge-path",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "brunnel", "bridge"], ["==", "class", "path"]]
+ ],
+ "paint": {
+ "line-color": "#cba",
+ "line-dasharray": [1.5, 0.75],
+ "line-width": {"base": 1.2, "stops": [[15, 1.2], [20, 4]]}
+ }
+ },
+ {
+ "id": "bridge-motorway-link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ ["==", "class", "motorway_link"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]
+ }
+ }
+ },
+ {
+ "id": "bridge-link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ [
+ "in",
+ "class",
+ "primary_link",
+ "secondary_link",
+ "tertiary_link",
+ "trunk_link"
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]
+ }
+ }
+ },
+ {
+ "id": "bridge-secondary-tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ ["in", "class", "secondary", "tertiary"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 20]]}
+ }
+ },
+ {
+ "id": "bridge-trunk-primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ ["in", "class", "primary", "trunk"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}
+ }
+ },
+ {
+ "id": "bridge-motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", "brunnel", "bridge"],
+ ["==", "class", "motorway"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}
+ }
+ },
+ {
+ "id": "bridge-railway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": ["all", ["==", "brunnel", "bridge"], ["==", "class", "rail"]],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": {"base": 1.4, "stops": [[14, 0.4], [15, 0.75], [20, 2]]}
+ }
+ },
+ {
+ "id": "bridge-railway-hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": ["all", ["==", "brunnel", "bridge"], ["==", "class", "rail"]],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": {"base": 1.4, "stops": [[14.5, 0], [15, 3], [20, 8]]}
+ }
+ },
+ {
+ "id": "cablecar",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 13,
+ "filter": ["==", "class", "cable_car"],
+ "layout": {"line-cap": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "hsl(0, 0%, 70%)",
+ "line-width": {"base": 1, "stops": [[11, 1], [19, 2.5]]}
+ }
+ },
+ {
+ "id": "cablecar-dash",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 13,
+ "filter": ["==", "class", "cable_car"],
+ "layout": {"line-cap": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "hsl(0, 0%, 70%)",
+ "line-dasharray": [2, 3],
+ "line-width": {"base": 1, "stops": [[11, 3], [19, 5.5]]}
+ }
+ },
+ {
+ "id": "boundary-land-level-4",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "filter": [
+ "all",
+ [">=", "admin_level", 4],
+ ["<=", "admin_level", 8],
+ ["!=", "maritime", 1]
+ ],
+ "layout": {"line-join": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#9e9cab",
+ "line-dasharray": [3, 1, 1, 1],
+ "line-width": {"base": 1.4, "stops": [[4, 0.4], [5, 1], [12, 3]]}
+ }
+ },
+ {
+ "id": "boundary-land-level-2",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "filter": [
+ "all",
+ ["==", "admin_level", 2],
+ ["!=", "maritime", 1],
+ ["!=", "disputed", 1]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "hsl(248, 7%, 66%)",
+ "line-width": {
+ "base": 1,
+ "stops": [[0, 0.6], [4, 1.4], [5, 2], [12, 8]]
+ }
+ }
+ },
+ {
+ "id": "boundary-land-disputed",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "filter": ["all", ["!=", "maritime", 1], ["==", "disputed", 1]],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "hsl(248, 7%, 70%)",
+ "line-dasharray": [1, 3],
+ "line-width": {
+ "base": 1,
+ "stops": [[0, 0.6], [4, 1.4], [5, 2], [12, 8]]
+ }
+ }
+ },
+ {
+ "id": "boundary-water",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "minzoom": 4,
+ "filter": ["all", ["in", "admin_level", 2, 4], ["==", "maritime", 1]],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgba(154, 189, 214, 1)",
+ "line-opacity": {"stops": [[6, 0.6], [10, 1]]},
+ "line-width": {
+ "base": 1,
+ "stops": [[0, 0.6], [4, 1.4], [5, 2], [12, 8]]
+ }
+ }
+ },
+ {
+ "id": "waterway-name",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "minzoom": 13,
+ "filter": ["all", ["==", "$type", "LineString"], ["has", "name"]],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 350,
+ "text-field": "{name:latin} {name:nonlatin}",
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-rotation-alignment": "map",
+ "text-size": 14
+ },
+ "paint": {
+ "text-color": "#74aee9",
+ "text-halo-color": "rgba(255,255,255,0.7)",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "water-name-lakeline",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "water_name",
+ "filter": ["==", "$type", "LineString"],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 350,
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-rotation-alignment": "map",
+ "text-size": 14
+ },
+ "paint": {
+ "text-color": "#74aee9",
+ "text-halo-color": "rgba(255,255,255,0.7)",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "water-name-ocean",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "water_name",
+ "filter": ["all", ["==", "$type", "Point"], ["==", "class", "ocean"]],
+ "layout": {
+ "symbol-placement": "point",
+ "symbol-spacing": 350,
+ "text-field": "{name:latin}",
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-rotation-alignment": "map",
+ "text-size": 14
+ },
+ "paint": {
+ "text-color": "#74aee9",
+ "text-halo-color": "rgba(255,255,255,0.7)",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "water-name-other",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "water_name",
+ "filter": ["all", ["==", "$type", "Point"], ["!in", "class", "ocean"]],
+ "layout": {
+ "symbol-placement": "point",
+ "symbol-spacing": 350,
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-rotation-alignment": "map",
+ "text-size": {"stops": [[0, 10], [6, 14]]},
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#74aee9",
+ "text-halo-color": "rgba(255,255,255,0.7)",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "poi-railway",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "Point"],
+ ["has", "name"],
+ ["==", "class", "railway"],
+ ["==", "subclass", "station"]
+ ],
+ "layout": {
+ "icon-allow-overlap": false,
+ "icon-ignore-placement": false,
+ "icon-image": "{class}_11",
+ "icon-optional": false,
+ "text-allow-overlap": false,
+ "text-anchor": "top",
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": ["Noto Sans Regular"],
+ "text-ignore-placement": false,
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-optional": true,
+ "text-padding": 2,
+ "text-size": 12,
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#666",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#ffffff",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "road_oneway",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["==", "oneway", 1],
+ [
+ "in",
+ "class",
+ "motorway",
+ "trunk",
+ "primary",
+ "secondary",
+ "tertiary",
+ "minor",
+ "service"
+ ]
+ ],
+ "layout": {
+ "icon-image": "oneway",
+ "icon-padding": 2,
+ "icon-rotate": 90,
+ "icon-rotation-alignment": "map",
+ "icon-size": {"stops": [[15, 0.5], [19, 1]]},
+ "symbol-placement": "line",
+ "symbol-avoid-edges": false
+ },
+ "paint": {"icon-opacity": 0.5}
+ },
+ {
+ "id": "road_oneway_opposite",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["==", "oneway", -1],
+ [
+ "in",
+ "class",
+ "motorway",
+ "trunk",
+ "primary",
+ "secondary",
+ "tertiary",
+ "minor",
+ "service"
+ ]
+ ],
+ "layout": {
+ "icon-image": "oneway",
+ "icon-padding": 2,
+ "icon-rotate": -90,
+ "icon-rotation-alignment": "map",
+ "icon-size": {"stops": [[15, 0.5], [19, 1]]},
+ "symbol-placement": "line",
+ "symbol-spacing": 75
+ },
+ "paint": {"icon-opacity": 0.5}
+ },
+ {
+ "id": "highway-name-path",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 15.5,
+ "filter": ["==", "class", "path"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": "{name:latin} {name:nonlatin}",
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": {"base": 1, "stops": [[13, 12], [14, 13]]}
+ },
+ "paint": {
+ "text-color": "hsl(30, 23%, 62%)",
+ "text-halo-color": "#f8f4f0",
+ "text-halo-width": 0.5
+ }
+ },
+ {
+ "id": "highway-name-minor",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["in", "class", "minor", "service", "track"]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": "{name:latin} {name:nonlatin}",
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": {"base": 1, "stops": [[13, 12], [14, 13]]},
+ "text-allow-overlap": false,
+ "symbol-spacing": 250,
+ "text-ignore-placement": false
+ },
+ "paint": {
+ "text-color": "#765",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "highway-name-major",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 12.2,
+ "filter": ["in", "class", "primary", "secondary", "tertiary", "trunk"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": "{name:latin} {name:nonlatin}",
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": {"base": 1, "stops": [[13, 12], [14, 13]]}
+ },
+ "paint": {
+ "text-color": "#765",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "highway-shield",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["<=", "ref_length", 6],
+ ["==", "$type", "LineString"],
+ ["!in", "network", "us-interstate", "us-highway", "us-state"]
+ ],
+ "layout": {
+ "icon-image": "road_{ref_length}",
+ "icon-rotation-alignment": "viewport",
+ "icon-size": 1,
+ "symbol-placement": {"base": 1, "stops": [[10, "point"], [11, "line"]]},
+ "symbol-spacing": 200,
+ "text-field": "{ref}",
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "viewport",
+ "text-size": 10
+ },
+ "paint": {}
+ },
+ {
+ "id": "highway-shield-us-interstate",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 7,
+ "filter": [
+ "all",
+ ["<=", "ref_length", 6],
+ ["==", "$type", "LineString"],
+ ["in", "network", "us-interstate"]
+ ],
+ "layout": {
+ "icon-image": "{network}_{ref_length}",
+ "icon-rotation-alignment": "viewport",
+ "icon-size": 1,
+ "symbol-placement": {
+ "base": 1,
+ "stops": [[7, "point"], [7, "line"], [8, "line"]]
+ },
+ "symbol-spacing": 200,
+ "text-field": "{ref}",
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "viewport",
+ "text-size": 10
+ },
+ "paint": {"text-color": "rgba(0, 0, 0, 1)"}
+ },
+ {
+ "id": "highway-shield-us-other",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 9,
+ "filter": [
+ "all",
+ ["<=", "ref_length", 6],
+ ["==", "$type", "LineString"],
+ ["in", "network", "us-highway", "us-state"]
+ ],
+ "layout": {
+ "icon-image": "{network}_{ref_length}",
+ "icon-rotation-alignment": "viewport",
+ "icon-size": 1,
+ "symbol-placement": {"base": 1, "stops": [[10, "point"], [11, "line"]]},
+ "symbol-spacing": 200,
+ "text-field": "{ref}",
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "viewport",
+ "text-size": 10
+ },
+ "paint": {"text-color": "rgba(0, 0, 0, 1)"}
+ },
+ {
+ "id": "airport-label-major",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "aerodrome_label",
+ "minzoom": 10,
+ "filter": ["all", ["has", "iata"]],
+ "layout": {
+ "icon-image": "airport_11",
+ "icon-size": 1,
+ "text-anchor": "top",
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-optional": true,
+ "text-padding": 2,
+ "text-size": 12,
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#666",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#ffffff",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place-other",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": [
+ "!in",
+ "class",
+ "city",
+ "town",
+ "village",
+ "country",
+ "continent"
+ ],
+ "layout": {
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": ["Noto Sans Bold"],
+ "text-letter-spacing": 0.1,
+ "text-max-width": 9,
+ "text-size": {"base": 1.2, "stops": [[12, 10], [15, 14]]},
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#633",
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1.2
+ }
+ },
+ {
+ "id": "place-village",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": ["==", "class", "village"],
+ "layout": {
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-size": {"base": 1.2, "stops": [[10, 12], [15, 22]]},
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#333",
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1.2
+ }
+ },
+ {
+ "id": "place-town",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": ["==", "class", "town"],
+ "layout": {
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-size": {"base": 1.2, "stops": [[10, 14], [15, 24]]},
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#333",
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1.2
+ }
+ },
+ {
+ "id": "place-city",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": ["all", ["!=", "capital", 2], ["==", "class", "city"]],
+ "layout": {
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-size": {"base": 1.2, "stops": [[7, 14], [11, 24]]},
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#333",
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1.2
+ }
+ },
+ {
+ "id": "place-city-capital",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": ["all", ["==", "capital", 2], ["==", "class", "city"]],
+ "layout": {
+ "icon-image": "star_11",
+ "icon-size": 0.8,
+ "text-anchor": "left",
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-offset": [0.4, 0],
+ "text-size": {"base": 1.2, "stops": [[7, 14], [11, 24]]},
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#333",
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1.2
+ }
+ },
+ {
+ "id": "place-country-other",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": [
+ "all",
+ ["==", "class", "country"],
+ [">=", "rank", 3],
+ ["!has", "iso_a2"]
+ ],
+ "layout": {
+ "text-field": "{name:latin}",
+ "text-font": ["Noto Sans Italic"],
+ "text-max-width": 6.25,
+ "text-size": {"stops": [[3, 11], [7, 17]]},
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#334",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "place-country-3",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": [
+ "all",
+ ["==", "class", "country"],
+ [">=", "rank", 3],
+ ["has", "iso_a2"]
+ ],
+ "layout": {
+ "text-field": "{name:latin}",
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": {"stops": [[3, 11], [7, 17]]},
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#334",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "place-country-2",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": [
+ "all",
+ ["==", "class", "country"],
+ ["==", "rank", 2],
+ ["has", "iso_a2"]
+ ],
+ "layout": {
+ "text-field": "{name:latin}",
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": {"stops": [[2, 11], [5, 17]]},
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#334",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "place-country-1",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": [
+ "all",
+ ["==", "class", "country"],
+ ["==", "rank", 1],
+ ["has", "iso_a2"]
+ ],
+ "layout": {
+ "text-field": "{name:latin}",
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": {"stops": [[1, 11], [4, 17]]},
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#334",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 2
+ }
+ },
+ {
+ "id": "place-continent",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 1,
+ "filter": ["==", "class", "continent"],
+ "layout": {
+ "text-field": "{name:latin}",
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": 14,
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#334",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 2
+ }
+ }
+ ],
+ "id": "bright"
+}
diff --git a/map/einzelpersonen.json b/map/einzelpersonen.json
new file mode 100644
index 0000000..5bf6ff1
--- /dev/null
+++ b/map/einzelpersonen.json
@@ -0,0 +1,193 @@
+{
+ "type": "FeatureCollection",
+ "features": [
+ {
+ "type": "Feature",
+ "properties": {
+ "_umap_options": {
+ "iconClass": "Ball"
+ },
+ "description": "**Ort:** Aalen **Name:** Sophie **Kontaktinfo:** Forum: @Sophie **Anzahl:** 1 Sensor **Weblink:** https://obs.adfc-bw.de/",
+ "name": "Aalen"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 10.091629,
+ 48.833838
+ ]
+ },
+ "id": "g1NzE"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Berlin",
+ "description": "**Ort:** Berlin **Name:** Benjamin Bös **Kontakt:** [@dasBoes](https://twitter.com/dasBoes) **Anzahl:** 1 Sensor"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 13.378236,
+ 52.529701
+ ]
+ },
+ "id": "I1NzQ"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Hilden",
+ "description": "**Name der Initiative:** D.Halmer **Kontaktinfo:** daniel@mundlandung.org **Weblink:**[ Fahrrad Dashcam Düsseldorf-Hilden ](https://www.youtube.com/channel/UCVtn4YPJLiG9-HWl9yeqJcw) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.929626,
+ 51.167997
+ ]
+ },
+ "id": "YzMTc"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "joerg_g_aus_e",
+ "description": "Kontaktmöglichkeit (Twitter): @JoergGausE"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 7.03128,
+ 51.47511
+ ]
+ },
+ "id": "U4ODY"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Lebach",
+ "description": "**Name**: Daniel B. **Anzahl**: 1 Sensor"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.904382,
+ 49.407414
+ ]
+ },
+ "id": "MxOTY"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Minden",
+ "description": "**Name:** Rainer Lodemann **Kontakt:** [lodi](https://forum.openbikesensor.org/u/lodi) im Forum"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.904247,
+ 52.312978
+ ]
+ },
+ "id": "M2Mjc"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Mönchengladbach",
+ "description": "**Kontaktinfo:**@AmNordpark (Twitter) **Kontakt-E-Mail-Adresse:** [amnordpark@gmail.com](mailto:amnordpark@gmail.com) **Anzahl:** 1 Sensor **Weblink:** [Am Nordpark](https://www.youtube.com/channel/UCG4PzbZkDeSbfwLbWw2LG2w) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.437302,
+ 51.196589
+ ]
+ },
+ "id": "Q1Mzg"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "_umap_options": {
+ "iconClass": "Ball",
+ "color": "Black"
+ },
+ "name": "Pforzheim",
+ "description": "**Ort:** Pforzheim **Name:** Natenom **Kontakt:** [@natenom](https://natenom.de) **Anzahl:** 1 Sensor **Weblink:** [natenom.com](https://natenom.com)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.701934,
+ 48.889757
+ ]
+ },
+ "id": "AyNTY"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Ratingen",
+ "description": "**Name:** Christian Kicken **Kontaktinfo:** Twitter @christiankicken / Mail [Obs-ratingen@t-online.de](mailto:Obs-ratingen@t-online.de) **Anzahl:** 1 Sensor"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.846199,
+ 51.299037
+ ]
+ },
+ "id": "I5NTg"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Spröckhövel",
+ "description": "**Name der Einzelperson:** **Kontaktinfo:** [moni-juergen@gmx.net](mailto:moni-juergen@gmx.net) **Anzahl:** 1 Sensor"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 7.251148,
+ 51.368323
+ ]
+ },
+ "id": "Y5NDI"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name:** Peter Polacek **Sensoren:** 7 gebaut, bei verschiedenen Personen **Kontakt:** pepponia@gmail.com **Anmerkung** Habe vor Workshops zum Zusammenbau zu organisieren, warte auf Portal für Österreich (evtl. via Radlobby Wien)",
+ "name": "Wien"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 16.334202,
+ 48.235179
+ ]
+ },
+ "id": "QxOTg"
+ }
+ ],
+ "_umap_options": {
+ "displayOnLoad": true,
+ "inCaption": true,
+ "browsable": true,
+ "editMode": "advanced",
+ "remoteData": {},
+ "id": "c25f6b60-3998-4860-bb14-97254e2ef413",
+ "name": "Einzelpersonen",
+ "iconClass": "Ball",
+ "popupContentTemplate": "",
+ "showLabel": null,
+ "old_id": 2057507,
+ "permissions": {
+ "edit_status": 0
+ }
+ }
+}
\ No newline at end of file
diff --git a/map/index.html b/map/index.html
index fed23be..4326a16 100644
--- a/map/index.html
+++ b/map/index.html
@@ -1,7 +1,7 @@
Karte der Initiativen | OpenBikeSensor
-Karte In vielen Regionen gibt es schon OpenBikeSensoren! Suchst du Gleichgesinnte
+
Karte In vielen Regionen gibt es schon OpenBikeSensoren! Suchst du Gleichgesinnte
oder Ansprechpartner in deiner Gegend? Die Karte hilft dir dabei. Möchtest du
selbst oder deine Initiative noch auf der Karte auftauchen? Im
Forum
-erfährst du, wie!
\ No newline at end of file
diff --git a/map/initiativen.json b/map/initiativen.json
new file mode 100644
index 0000000..fe79f2b
--- /dev/null
+++ b/map/initiativen.json
@@ -0,0 +1,747 @@
+{
+ "type": "FeatureCollection",
+ "features": [
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Aachen",
+ "description": "**Name**: ADFC Aachen/RWTH Aachen **Anzahl**: im Aufbau **Kontakt**: [openbikesensor@lists.adfc-ac.de](mailto:openbikesensor@lists.adfc-ac.de ) URL: [aachen.adfc.de](https://aachen.adfc.de/) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.073149,
+ 50.770184
+ ]
+ },
+ "id": "g2OTE"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name**: ADFC Baden-Baden Bühl Rastatt **Anzahl**: 14 **Kontakt**: [robert.stephan@adfc-bw.de](mailto:robert.stephan@adfc-bw.de) **Weblink:** [https://baden-baden.adfc.de/](https://baden-baden.adfc.de/)",
+ "name": "ADFC Baden-Baden Bühl Rastatt"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.15442,
+ 48.86172
+ ]
+ },
+ "id": "Q1MzE"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Ort:** Rottstraße 5, 45127 Essen **Name der Initiative:** ADFC Essen **Kontakt:** [info@adfc-essen.de](mailto:info@adfc-essen.de) **Anzahl:** 6 Sensoren im Verleih **Weblink:** https://essen.adfc.de/",
+ "name": "ADFC Essen"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 7.01181,
+ 51.45878
+ ]
+ },
+ "id": "UxMjM"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "ADFC Osnabrück",
+ "description": "**Ort:** Große Gildewart 12, 49074 Osnabrück **Name der Initiative:** ADFC Osnabrück **Kontakt:** [markus im OpenBikeSensor Forum](https://forum.openbikesensor.org/u/markus) **Anzahl:** >20 Sensoren **Weblink:** [https://obs.adfc-osnabrueck.de/](https://obs.adfc-osnabrueck.de/) **Anmerkung:** Die Technikgruppe des ADFC Osnabrück hat im Sommer 2022 20 OBS gebaut, die zum Teil auch verliehen werden. Das Portal kann grundsätzlich von jedem Interessenten genutzt werden, der Daten in Niedersachen und NRW aufzeichnet. In Osnabrück und umzu kümmern wir uns um die Auswertung und Kommunikation mit der jeweiligen Verwaltung. In anderen Regionen müsst ihr das bitte selbst übernehmen. "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.039428,
+ 52.277547
+ ]
+ },
+ "id": "cxMzM"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name**: ADFC Augsburg **Anzahl**: 12 **Kontakt**: [obs@adfc-augsburg.de](mailto:obs@adfc-augsburg.de) **Weblink:** [https://augsburg.adfc.de/](https://augsburg.adfc.de/)",
+ "name": "Augsburg"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 10.8937,
+ 48.36869
+ ]
+ },
+ "id": "Y5Mzc"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Backnang",
+ "description": "**Name der Initiative:** ADFC Backnang **Kontaktinfo:**[backnang@adfc-bw.de](mailto:backnang@adfc-bw.de) **Anzahl:** 3 Sensoren **Weblink:** [Zeitungsbericht](https://www.bkz.de/nachrichten/sensoren-vermessen-ueberholmanoever-125390.html)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.429703,
+ 48.946857
+ ]
+ },
+ "id": "YyMDg"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name der Initiative:** Bürgerinitiative + ADFC BW **Kontaktinfo:** [ benedikt.glitz@adfc-bw.de](mailto: benedikt.glitz@adfc-bw.de) **Weblink**: [https://obs.adfc-bw.de/](https://obs.adfc-bw.de/)",
+ "name": "Bad Waldsee"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.755859,
+ 47.921546
+ ]
+ },
+ "id": "k3MjI"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Bietigheim-Bissingen",
+ "description": "**Name der Initiative:** ADFC Bietigheim-Bissingen **Kontaktinfo:** [bietigheim-bissingen@adfc-bw.de](mailto:bietigheim-bissingen@adfc-bw.de) **Anzahl:** 5 Sensoren **Weblink:** [www.adfc-bw.de/bietigheim-bissingen](https://www.adfc-bw.de/bietigheim-bissingen/?page=aktionen/abstand_1_5m/openbikesensor.php)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.137106,
+ 48.94992
+ ]
+ },
+ "id": "cwNjc"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Bochum",
+ "description": "**Name der Initiative:** Radwende Bochum **Kontakt:** [radwende-bochum@zeromail.org](mailto:radwende-bochum@zeromail.org) **Anzahl Sensoren:** 1 **Webseite**: [https://www.radwende-bochum.de](https://www.radwende-bochum.de) **Mastodon**: [https://ruhr.social/@RadwendeBochum/](https://ruhr.social/@RadwendeBochum/)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 7.207213,
+ 51.479565
+ ]
+ },
+ "id": "A0NDM"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Bodenseekreis",
+ "description": "**Name der Initiative:** ADFC Bodenseekreis **Kontaktinfo:** [buero-bodenseekreis@adfc-bw.de](mailto:buero-bodenseekreis@adfc-bw.de) **Anzahl**: >=5 Sensoren **Weblink**: [https://www.adfc-bw.de/bodenseekreis/startseite/ADFC Bodenseekreis](https://www.adfc-bw.de/bodenseekreis/startseite/ADFC Bodenseekreis)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.483433,
+ 47.658045
+ ]
+ },
+ "id": "cwNDU"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Bottrop",
+ "description": "**Name der Initiative:** Aufbruch Fahrrad Bottrop **Anzahl:** 5 Sensoren (noch in Bestellung) **Kontaktinfo:**[Aufbruch Fahrrad Bottrop](mailto:kontakt@aufbruchfahrradbottrop.de) **Weblink:**[Aufbruch Fahrrad Bottrop](https://aufbruchfahrradbottrop.de/)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.931686,
+ 51.520722
+ ]
+ },
+ "id": "MxMDE"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Braunschweig",
+ "description": "**Name**: OpenBikeSensor Braunschweig **Anzahl der Sensoren:** 30 **Kontakt**: [obs_bs@outlook.de](mailto:obs_bs@outlook.de) **Weblink:** [OpenBikeSensor Braunschweig](https://www.sandkasten.tu-braunschweig.de/projekte/openbikesensor-fuer-bs-sicher-auf-dem-rad) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 10.52843,
+ 52.27403
+ ]
+ },
+ "id": "gwNDk"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Dachau",
+ "description": "**Name der Initiative:** ADFC Dachau **Kontaktinfo:** Twitter (@adfcdachau) **Anzahl:** 5 Sensoren **Weblink:** https://www.adfc-dachau.de/abstandsmessungen/ **Über uns:** Der OpenBikeSensor wird seit Anfang 2021 eingesetzt. "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 11.435932,
+ 48.25679
+ ]
+ },
+ "id": "U1Mzg"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Darmstadt-Dieburg",
+ "description": "**Ort:** Am Fürstenbahnhof 5, 64293 Darmtadt **Name der Initiative:** ADFC Darmstadt-Dieburg e.V. **Kontakt:** [obs@adfc-darmstadt.de](mailto:obs@adfc-darmstadt.de) **Anzahl:** 23 Sensoren **Weblink:** [Visualisierung der Straßenabschnitte](https://www.adfc-darmstadt.de/obs/roads.html) [Projektseite](https://www.adfc-darmstadt.de/obs) **Anmerkung:** Messungen im Stadtgebiet und im Landkreis Darmstadt-Dieburg."
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.630576,
+ 49.87198
+ ]
+ },
+ "id": "YwMDg"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Dresden",
+ "description": "**Name der Initiative:** ADFC Dresden e.V. **Kontakt:** [info@adfc-dresden.de](mailto:info@adfc-dresden.de) **Anzahl:** 6 Sensoren **Webseite:** https://www.adfc-dresden.de/"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 13.748424,
+ 51.063414
+ ]
+ },
+ "id": "c2NzE"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Ort:** Bachmannstr. 2 – 4 60488 Frankfurt a.M. **Name der Initiative:** ADFC Frankfurt am Main e.V. **Kontakt:** [obs@adfc-frankfurt.de](mailto:obs@adfc-frankfurt.de) [Mastodon](https://hessen.social/@joschi64) **Anzahl:** 18 Sensoren im Verleih **Weblink:** [ADFC Frankfurt](https://www.adfc-frankfurt.de/)",
+ "name": "Frankfurt"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.626156,
+ 50.131484
+ ]
+ },
+ "id": "I2Nzk"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Freiburg",
+ "description": "**Name der Initiative:** Lokalgruppe Freiburg **Kontakt:** [Kategorie im Forum](https://forum.openbikesensor.org/t/ueber-die-kategorie-freiburg-im-breisgau/410) **Anzahl Sensoren:** Aktiv unterwegs ca. 15, gebaut schon einige mehr, für/mit anderen Regionen"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 7.8494,
+ 47.99608
+ ]
+ },
+ "id": "k2NzM"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Fulda ",
+ "description": "**Name der Initiative:** ADFC Fulda e.V. **Kontakt:** [info@adfc-fulda.de](mailto:info@adfc-fulda.de) **Anzahl:** 5 Sensoren (geplant) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.684448,
+ 50.555649
+ ]
+ },
+ "id": "U0NTU"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Gmund am Tegernsee",
+ "description": "**Name**: Oberlab **Kontaktinfo**: [info@oberlab.de](mailto:info@oberlab.de) **Anzahl**: 5 Sensoren (In Planung) **Weblink**: [https://oberlab.de/](https://oberlab.de/)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 11.737726,
+ 47.750568
+ ]
+ },
+ "id": "E2ODQ"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Graz",
+ "description": "**Name der Initiative:** Radlobby ARGUS Steiermark **Kontakt:** [argus.steiermark@radlobby.atstmk.radlobby.at](mailto:argus.steiermark@radlobby.atstmk.radlobby.at) **Anzahl Sensoren:** 3 (im Bau) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 15.44711,
+ 47.061729
+ ]
+ },
+ "id": "IxNTU"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Haan",
+ "description": "**Name der Initiative:** ADFC OG Haan **Kontakt:** [ADFC OG Haan](mailto:joerg.pieper@adfc-haan.de) **Anzahl:** 1 Sensoren **Weblink:** [haan.adfc.de](https://haan.adfc.de/) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 7.01,
+ 51.2
+ ]
+ },
+ "id": "kwNTM"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Hamburg",
+ "description": "**Name der Initative:** Welcome Werkstatt e. V. **Kontaktinfo:** [info@welcome-werkstatt.de](mailto:info@welcome-werkstatt.de) **Anzahl:** 30 Sensoren **Weblink:** [Welcome Werkstatt](https://www.welcome-werkstatt.de)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 10.022042,
+ 53.579965
+ ]
+ },
+ "id": "QxMDU"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Hamburg",
+ "description": "**Name der Initative:** ADFC Hamburg e.V. **Kontaktinfo:** [openbikesensor@hamburg.adfc.de ](mailto:openbikesensor@hamburg.adfc.de ) **Anzahl:** 10 Sensoren"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 10.009854,
+ 53.557445
+ ]
+ },
+ "id": "A2MzY"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Hamminkel ",
+ "description": "**Name der Initiative:** ADFC Hamminkeln **Kontaktinfo:** [info@adfc-hamminkeln.de](info@adfc-hamminkeln.de) **Anzahl:** 3 Sensoren **Weblink:** [ADFC Hamminkel](https://hamminkeln.adfc.de/)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.591969,
+ 51.733862
+ ]
+ },
+ "id": "c0MTI"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Hattingen",
+ "description": "**Name der Initiative:** ADFC Ortsgruppe Hattingen **Kontaktinfo:**[gisenberg55@gmail.com](mailto:gisenberg55@gmail.com) **Anzahl:** 3 Sensoren **Weblink:** [Gerd Isenberg](https://touren-termine.adfc.de/benutzer/e8424913-631c-4e64-b94c-b1c626790871)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 7.1876,
+ 51.399059
+ ]
+ },
+ "id": "A2NzM"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name der Initiative:** Institut für Straßen- und Eisenbahnwesen (ISE), Karlsruher Institut für Technologie (KIT) **Kontaktinfo:** [philipp.riemer@kit.edu](mailto:philipp.riemer@kit.edu) **Anzahl:** 4 Sensoren **Weblink:** [www.ise.kit.edu](https://www.ise.kit.edu)",
+ "name": "Karlsruhe"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.415501,
+ 49.009928
+ ]
+ },
+ "id": "g4NTk"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name:** Open Bike Sensor Köln **Kontakt:** Logistik [https://social.cologne/@cityradler](https://social.cologne/@cityradler), techn. Support [https://social.cologne/@kampfteppich](https://social.cologne/@kampfteppich) **Anzahl**: 29 Sensoren ab ca. März 2022",
+ "name": "Köln"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.965547,
+ 50.941421
+ ]
+ },
+ "id": "EzMDM"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Konstanz ",
+ "description": "**Name der Initative:** Stadt Konstanz **Kontaktinfo:** [https://www.konstanz.de/digital/foerderprojekte/deas/testfeld+radverkehr](https://www.konstanz.de/digital/foerderprojekte/deas/testfeld+radverkehr) **Anzahl:** 10 Sensoren"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.173664,
+ 47.66056
+ ]
+ },
+ "id": "k5MDQ"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Langen",
+ "description": "**Name der Initiative:** ADFC-VILE-OBS **Über uns:** Wir haben uns zum Ziel gemacht mit unserem Projekt zur Verbesserung der Verkehrswege für Radfahrende beizutragen. Sichere Radwege führen zu mehr Nutzung und damit leisten wir einen mittelbaren Beitrag zum Umweltschutz und Gesundheitsvorsorge **Kontakt:** [info@adfc-langen.de](mailto:info@adfc-langen.de) **Anzahl:** 15 Sensoren **Weblink:** [www.adfc-langen.de](https://www.adfc-langen.de)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.666772,
+ 49.987309
+ ]
+ },
+ "id": "IzMzU"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Langenhagen",
+ "description": "**Name der Initiative:** Ortsgruppe Langenhagen im ADFC Region Hannover e.V. **Kontaktinfo:** [langenhagen@adfc-hannover.de](mailto:langenhagen@adfc-hannover.de) **Anzahl:** im Aufbau **Weblink:**[ADFC Langenhagen](https://www.ADFC-Langenhagen.de) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.757091,
+ 52.440396
+ ]
+ },
+ "id": "g1MzY"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name**: Initiative pro Fahrrad Lübbecke e.V. **Anzahl der Sensoren:** 3 **Kontakt**: [obs@pro-fahrrad-lk.de](mailto: obs@pro-fahrrad-lk.de) **Weblink:** [Pro Fahrrad LK](https://www.pro-fahrrad-lk.de ) ",
+ "name": "Lübbecke"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.61793,
+ 52.30279
+ ]
+ },
+ "id": "Y4Njg"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Lübeck",
+ "description": "**Name der Initiative:** ADFC Lübeck e.V. **Kontaktinfo:**[kontakt@adfc-luebeck.de](mailto:kontakt@adfc-luebeck.de) **Anzahl:** 10 Sensoren (ab Frühjahr 2022) **Website:** [ADFC Lübeck](https://luebeck.adfc.de/) ",
+ "_umap_options": {
+ "showLabel": null,
+ "labelInteractive": true
+ }
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 10.685577,
+ 53.86723
+ ]
+ },
+ "id": "c2NjI"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Ludwigshafen",
+ "description": "**Name der Initiative:** Brückenkaffee Ludwigshafen **Kontaktinfo:** [wolf.mango@freenet.de](mailto:wolf.mango@freenet.de) **Anzahl:** 5 Sensoren Weblink: [Brückenkaffee Ludwigshafen](https://brueckenkaffee.de/)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.448486,
+ 49.505584
+ ]
+ },
+ "id": "Q2ODA"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name**: ADFC Main-Taunus e.V. **Anzahl der Sensoren:** 10 **Kontakt**: [roland.behme@adfc-mtk.de](mailto:roland.behme@adfc-mtk.de) **Weblink:** [ADFC MTK](https://www.adfc-mtk.de/) ",
+ "name": "MTK"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.445683,
+ 50.085027
+ ]
+ },
+ "id": "I2MjE"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Mainz",
+ "description": "**Name der Initiative:** OpenBikeSensor Mainz **Kontaktinfo:** [Twitter @RonaldL01864352](https://twitter.com/RonaldL01864352/) **Anzahl:** 5 Sensoren, min einer im Verleih "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.300794,
+ 49.978954
+ ]
+ },
+ "id": "IzNDU"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "München",
+ "description": "**Name der Initiative:** ADFC München **Kontaktinfo:** Twitter (@ADFC_Muenchen) **Anzahl:** 20 Sensoren **Weblink:** [Visualisierung der Straßenabschnitte](https://www.adfc-muenchen.de/radverkehr/projekt-ueberholabstaende-mit-dem-openbikesensor-messen/) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 11.584053,
+ 48.136815
+ ]
+ },
+ "id": "QyNTY"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Offenburg",
+ "description": "**Name der Initiative:** ADFC Offenburg **Kontaktinfo:** [offenburg@adfc-bw.de](mailto:offenburg@adfc-bw.de) **Weblink:** [https://obs.adfc-bw.de/](https://obs.adfc-bw.de/)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 7.926636,
+ 48.470223
+ ]
+ },
+ "id": "I2Mzg"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "RadEntscheid Essen",
+ "description": "**Ort:** Gemarkenstraße 72, 45147 Essen **Name der Initiative:** RadEntscheid Essen **Kontakt:** [info@radentscheid-essen.de](mailto:info@radentscheid-essen.de) **Anzahl:** 11 Sensoren im Verleih **Weblink:** [Projektseite](https://radentscheid-essen.de/openbikesensor/) **Anmerkung:** Über uns: Der RadEntscheid Essen verleiht über das Portal “[Essener Lastenrad](https://essener-lastenrad.de/zubehoer/openbikesensoren)” elf solcher Messgeräte für jeweils vier Wochen. Die gesammelten Daten sind anonymisiert auf dem Essener [OBS-Portal](https://obs.radentscheid-essen.de/map#13.00/51.441/7.016) zu finden und geben Auskunft darüber, wie eng im Durchschnitt auf den verschiedenen Straßenabschnitten in Essen überholt wird. Inzwischen gibt es in Essen über 30 (teilweise private) OpenBikeSensoren."
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.99348,
+ 51.44155
+ ]
+ },
+ "id": "gwMzM"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Radentscheid Schwerin",
+ "description": "**Name der Initiative:** Radentscheid Schwerin **Kontaktinfo:**[kontakt@radentscheid-schwerin.de](mailto:kontakt@radentscheid-schwerin.de) **Anzahl:** ca. 50 Sensoren **Website:** [Radentscheid Schwerin](https://www.radentscheid-schwerin.de) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 11.411104,
+ 53.628659
+ ]
+ },
+ "id": "EzNjc"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Region Hannover ",
+ "description": "**Name der Initative**: Region Hannover **Weblink:**[Region Hannover](https://www.region-hannover.de ) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.745215,
+ 52.366695
+ ]
+ },
+ "id": "IwNTk"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Saarbrücken",
+ "description": "**Name der Initiative:** Radelkollektiv, Welveränderer e.V. **Kontakt:** [Harald Kreuzer](mailto:harald@radelkollektiv.de) [Pierre-Jean Guéno](mailto:pierre_jean@sensor.community) **Anzahl:** 3 Sensoren **Weblink:** [https://saarland-nachhaltig.de/](https://saarland-nachhaltig.de/) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 6.968175,
+ 49.245887
+ ]
+ },
+ "id": "IxNjI"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Salzburg",
+ "description": "**Name**: Universität Salzburg, Mobility Lab am Fachbereich Geoinformatik, Z_GIS **Kontaktinfo**: [mobilitylab@plus.ac.at](mailto:mobilitylab@plus.ac.at) **Anzahl**: 4 Sensoren (ältere Bauart) **Weblink**: [https://mobilitylab.zgis.at/](https://mobilitylab.zgis.at/)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 13.03956,
+ 47.82348
+ ]
+ },
+ "id": "Y0OTY"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Sprockhövel",
+ "description": "**Name der Initiative:** ADFC-EN Ortsgruppe Sprockhövel **Kontaktinfo:** [Chantrain4@t-online.de](mailto:Chantrain4@t-online.de) **Anzahl:** 2 Sensoren **Weblink:**[ADFC EN](https://kreisverbaende.adfc-nrw.de/kv-ennepe-ruhr/willkommen-beim-adfc-ennepe-ruhr.html/)"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 7.249947,
+ 51.366769
+ ]
+ },
+ "id": "cxOTk"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Stuttgart",
+ "description": "**Name**: Zweirat Stuttgart **Kontaktinfo**: Twitter-Handle @zweirat0711 **Anzahl**: ca. 20 Sensoren **Weblink**: [OpenBikeSensor – Zweirat Stuttgart](https://zweirat-stuttgart.de/projekte/openbikesensor/) ",
+ "_umap_options": {
+ "iconUrl": "https://www.openbikesensor.org/favicon.ico",
+ "iconClass": "Default"
+ }
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.171281,
+ 48.763659
+ ]
+ },
+ "id": "M0Nzg"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Ulm / Neu Ulm",
+ "description": "**Name der Initiative:** ADFC Ulm/Neu-Ulm, Verschwoerhaus **Kontaktinfo:** [kontakt@adfc-ulm.de](mailto:kontakt@adfc-ulm.de);[kontakt21@verschwoerhaus.de](mailto:kontakt21@verschwoerhaus.de) **Anzahl:** 10 Sensoren **Weblink:** [Verschwoerhaus ](https://verschwoerhaus.de/tag/openbikesensor/) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 9.996529,
+ 48.396872
+ ]
+ },
+ "id": "I3MzQ"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "name": "Wiesbaden",
+ "description": "**Name der Initiative:** ADFC Wiesbaden / Rheingau-Taunus e.V. **Kontakt:** [info@adfc-wiesbaden.de](mailto:info@adfc-wiesbaden.de) **Anzahl:** 3 Sensoren **Weblink:** [https://www.adfc-wiesbaden.de](https://www.adfc-wiesbaden.de) "
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.229072,
+ 50.079546
+ ]
+ },
+ "id": "kxNDI"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name**: TH Wildau - Projekt „Zu Nah?“ **Kontaktinfo**: [zoe.ingram@th-wildau.de](mailto:zoe.ingram@th-wildau.de) **Anzahl:** 50 Sensoren **Webseite:** https://innohub13.de/wir-forschen/zu-nah/ **Portal:** https://obs.adfc-brandenburg.de/ ",
+ "name": "Wildau"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 13.632491,
+ 52.319245
+ ]
+ },
+ "id": "A4MTI"
+ },
+ {
+ "type": "Feature",
+ "properties": {
+ "description": "**Name**: ADFC Wetterau **Kontaktinfo**: [obs@adfc-badnauheim-friedberg.de](mailto:obs@adfc-badnauheim-friedberg.de) **Anzahl:** 15 Sensoren **Webseite:** https://www.adfc-badnauheim-friedberg.de/OpenBikeSensor **Kurzbeschreibung:** Gemeinsame Initiative der beiden ADFC Gliederungen für den Wetteraukreis: ADFC Bad Vilbel / Karben e.V. & ADFC Bad Nauheim Friedberg e.V. ",
+ "name": "ADFC Wetterau"
+ },
+ "geometry": {
+ "type": "Point",
+ "coordinates": [
+ 8.932210,
+ 50.3623105
+ ]
+ },
+ "id": "Wetterau"
+ }
+ ],
+ "_umap_options": {
+ "displayOnLoad": true,
+ "inCaption": true,
+ "browsable": true,
+ "editMode": "advanced",
+ "name": "Initiativen",
+ "id": "de86d9a9-c521-45bb-afe6-1c2d80dafeed",
+ "remoteData": {},
+ "showLabel": null,
+ "old_id": 2040764,
+ "permissions": {
+ "edit_status": 0
+ }
+ }
+}
\ No newline at end of file
diff --git a/map/map.html b/map/map.html
new file mode 100644
index 0000000..136104f
--- /dev/null
+++ b/map/map.html
@@ -0,0 +1,217 @@
+
+
+
+
+ Add a vector tile source
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/map/map_indicator.png b/map/map_indicator.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ef7496ea3e03cc170ac585d0d57f335dc906915
GIT binary patch
literal 4516
zcmV;V5nJwwP)y72~*IG7a>CMv|Fx%(!Jv%$bn`6FRizX-wK;Ws*2)Y;D>2Mal^F&OMP#yCJq*Jn
zlu5v$!27^n)YkB}&aT-lhKQdYs4B61FJ
z7D_e3WFJa>pekt*eM$^Za){ZGZkfN`hdRCziIAnW)y)d_
z!1Jm+DZ<0uo%PSC68itZP={Q*I906)nTs+H_^9iChT$DV?h~=Mr`sA{aox;Fgf8UD
z#?+LG3Gyw4e*ix2x}RK8ctPNbr7<_XdPObfKQON8I4>eAlMhP#8_
zA`dj=+NG&eHA@#FX9QL>YzR+Tp}x1Rep6s2g9usXu1-{)ytPG?%Ymft1;bAU<(i(i
zr(L7>UXb;>nC~H<+MGH*gZvB1S-uvEAPP@f;qN!M*ZyhLS2v|TlTmpg4tRJ3
z&Pk}gQoUrwdA`>1!(^GeI#E4+Ya6f#5YG#g9u}p&XY#w>*OnIR^~^mFxw0`;Q9eQL
z1}^Y)#^ZxEA7uJ2dgq3PyS$vKry-xV@TSA}lqc_xSI>o`@Z@e&e*SOTF8PyJ^Ykp_
z+9fNGRqUfgXn%8vNoO+2zj^hB@BEJ!GxH?m+RIn|Ia#|_;baebis|PKgMM~XN5gN5
zol(&t&uZ>EE}^mkbb7JP#2mysHjz22_qqjd6*H5fzCxY0@TS9!>Z5VMzHx%dCfC+3
zS$S+RGbuRalUr9!*i)XoUyxIZX&`1yDi!;1ZR^T{Pj4zHWSP4%NCd*ZF=z?h>u
z?9XKG>Vi&rDk$XY>D$_YuNLy!n1VU4divID3VC7P8(uYwyFQ2EVd6bmF0cmu+@_9(
zwfVd#uaIY6_TxWGCi`9nIV$h=V!UEoRyZx6gBm%nuBElrB$JuD;((oVOj7wtKA+Dy
zhg`LD>Q%sB7t&RXw)pd2#@>&tIk@$drn8+ASd}34QcmH#&3CA>9
z1TkW|hyxBANh{edk+C;`#|*iuDK$^wY;XFC@t8BK7O(ibu_hXIbzRw*no@p(_!$?x}ks53`9-FH-zD<;U*5e;~=ptmBrSXIA}uvBF-$>S4=#F5<{^^!;=j!cT4
zkg!x4pGVx75~GUwXHRF{O=W$V8Hg+w@co4Nyb&gwKCK`2si7v%YVJ5Rp%dRGbeE6HTPpU#
zp7w_4Tz4{i>GDrmYkmrx=(?97yepH;^r1su9AvW5iQgn-0SnxhNSHZc2pC{fTjMj5
z={pU0z;!P}n99!VKMsBHpbanSzrsH}h%E2!s9O-Wu{qK=Ec~Mg=hrlKwJ9ud-OpZB
zWggHq_^|_4*Rz{fR#~+@K{qx6ifB`Jd&Bjv8ySo0=2VlYv=fqJ>^3Vid#|s1ZSU^~
ztgfx<*Me_pM3zJ$V1SbVel;-j6g?sNBuI_edI&B
zy{;W39B)eHYl9D5>|0&eEJ>XS@|3g2_8|}Ubk=<-Y@floAc9mkbv*?5dX-`>sOaf?
zH&pkVjC{deOZ)imj4k_S6axlOMJ3ZW4|v;kFGkJh_x-&02ZeK-bh94?z3A0tm;A5e
zK8hlJ!@@sW^y}dEjjHIU_x^04e+LLK$5}^!2)B24H2lhC4_?vR(eO)E?sDA5U!K~u
zY!VEFoXAc*1Gi^>yxW&8U+S>F=ai9L0=(z41uGSQ1p^_Aal5J(SQhow^iW>u{LVH-
zZ*bXz#heWTAuCQVcX@yJhq}^Xec!0)%XSHPb}@OrsP@ZiL=co(SB-$IbTv|)-)y{b
z!TSn7a#deMYXQuRg+D&drvbrpK@IkHN3{b%66QACZD~)L{k@x~nXkelp?oTzYzCH;$E>_iharmY_(x7faHllC3sOt(N;%a#(7?de4Drd8l0JiV51o|Oq?501uCSVMwY<9xD(}0foWLCBqOL1!#?kT$e=;Kc!9{Irvthi8s&7cb
z(e7hqt5I~Di`s&j>7uSH)T*oH-DW^Mxk5jGwAxKwH;71;le)@QqoQxPC=Q${t*yS^
zmntmuFQtf~So6A*;xKjAuBkPSY6nWyj-x*AYD`i=wiw86aZwz=sD9Q}?I1D2
zxvpx9)z{6m$?t6zaI!Z>Frm1L(r>KVi^iVH7j{lP^xfCZ`j(cALSVOf9gM1eqH1Z^
zY!|hIqGsue8i)7k*tou>CDVTe1^S|+CP-Mm<*IfdSpBxc>Mz0GD=5U>sW=K3S6-0{
z=h#?9GW&ZsPXl*vVo~;ApPWV3yJ`fORGu*l9M<=Z>>jfacjKWcVxEA(BMmfny^6cj
zb9dTArl#0CnT3hkrOQuLYkB}DN1p^Xr90|RfddAHk;hy#Gr&ZXO-5>rkg-rJ%W)Ji
zfQ5bMdJh^-BD=;-JNx)*ZBy!tj(hNg>gKNVLB8a)2`l^Z+!u29n;&@!)af{y?@M*doRcexVHI75qr-kzkN&ChhQF-+Sb-`
zP1v6SQ{8qVYxLd=_MO&s-~j@YxHIs6h9YvtuEX}MirT>o5yWnvdW*v8&U-=c9{l?O
z|B>mo`A>&ri2jSJw@Trq^p4?1Q5tsR#)#YuSl_$K8TpHZ@O(|v3b)@q2bkTQ`if21S4140?J+#oBoa3b
z_r!>|4612bu^Q38^|h_SSff@J^en3jeEiC)%Ws-)vSrIbL$}jLm4EN)tRMEqJlX_fkBn=i1*=~s0yYog2>M5lKTkzK6=V9_m+Zj5152ZO|BmD^>ZlQZIMzgC
z2G`wI*A3j~NlP)FBCuvtd;JSzO_!UUMp_8f_vRQtMYuMX33Cd$yREKU)%jt_m_g)f
zG350*Yh#KS`2w_F~>HCfSk6d2a{LGvCW|%FN>j|@4m6k
z4$0eMC?MpX&c?LB{rSEw#uM_k7z*5rWz}9uY;)igVlfmLa%{5;v>=P2i2c#A&A}oz
zQIN$@M94jzjcMS4LSG+~4|;!k+5G1VeRWYsmITvERFB_8h+-^;B10ZHP#u3Z`$};Z
zg9pcmW1Ib@Sc}1fkYk&D<$+=?29M76h;8-9TGY@(_-|>O>7K2|`MP&6VVw>~E4~xO4kYk$*!5@pk&+D6FoAbgii^0c``)!to
z{F;9$q41Dj7K6`MDk@w>Z1b2HQQs^EpF{5HsCy~4d2|#WO1C%sho3ckzvei$d35}?
z7y<}6ws~ZNuowawJs`Guc!IDP0t&gOqwXbzhl8jU6-0PA2#X=maX_Sn*ycg#)j?GX
zEacec{RC+-1U{lqY;!-sSquS(9NQec#o%OYuJLYjuoi=Zkb64nUJ~JvpzDT&M}oE(
z9F4M<&D!y4vr6C=gQJjpmo>gP4sCvrwZ{2~Jzi2$A$wzUX;};<7BUoX
zbE#PjB^dI+_vR-Gdv)nq3?cfIvYum!ic`q9G5A*^#f!Pn4p?P@*A2{x(|&_l5|H
zk`1}vW?7%(qA;W%~$CJeXsOq@-Q@uFV;<|^R|NK7+pcvU(o?CSQ0000
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/map/pin.png b/map/pin.png
new file mode 100644
index 0000000000000000000000000000000000000000..73afb78217bf7d7818cbb049e6fead48ee29f4be
GIT binary patch
literal 7384
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
literal 0
HcmV?d00001
diff --git a/map/pin.svg b/map/pin.svg
new file mode 100644
index 0000000..6629d00
--- /dev/null
+++ b/map/pin.svg
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/map/style-cdn.json b/map/style-cdn.json
new file mode 100644
index 0000000..e4ba44a
--- /dev/null
+++ b/map/style-cdn.json
@@ -0,0 +1,2066 @@
+{
+ "version": 8,
+ "name": "Dark Matter",
+ "metadata": {
+ "mapbox:autocomposite": false,
+ "mapbox:groups": {
+ "101da9f13b64a08fa4b6ac1168e89e5f": {
+ "collapsed": false,
+ "name": "Places"
+ },
+ "a14c9607bc7954ba1df7205bf660433f": {
+ "name": "Boundaries"
+ },
+ "b6371a3f2f5a9932464fa3867530a2e5": {
+ "collapsed": false,
+ "name": "Transportation"
+ }
+ },
+ "mapbox:type": "template",
+ "openmaptiles:mapbox:owner": "openmaptiles",
+ "openmaptiles:mapbox:source:url": "mapbox://openmaptiles.4qljc88t",
+ "openmaptiles:version": "3.x"
+ },
+ "sources": {
+ "openmaptiles": {
+ "type": "vector",
+ "url": "https://maps.tilehosting.com/data/v3.json?key=SymbVzXrAD6Jmqe6yBOS"
+ }
+ },
+ "sprite": "https://openmaptiles.github.io/dark-matter-gl-style/sprite",
+ "glyphs": "https://maps.tilehosting.com/fonts/{fontstack}/{range}.pbf?key=SymbVzXrAD6Jmqe6yBOS",
+ "layers": [
+ {
+ "id": "background",
+ "type": "background",
+ "paint": {
+ "background-color": "rgb(12,12,12)"
+ }
+ },
+ {
+ "id": "water",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "water",
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ [
+ "!=",
+ "brunnel",
+ "tunnel"
+ ]
+ ],
+ "layout": {
+ "visibility": "visible"
+ },
+ "paint": {
+ "fill-antialias": false,
+ "fill-color": "rgb(27 ,27 ,29)"
+ }
+ },
+ {
+ "id": "landcover_ice_shelf",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "maxzoom": 8,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ [
+ "==",
+ "subclass",
+ "ice_shelf"
+ ]
+ ],
+ "layout": {
+ "visibility": "visible"
+ },
+ "paint": {
+ "fill-color": "rgb(12,12,12)",
+ "fill-opacity": 0.7
+ }
+ },
+ {
+ "id": "landcover_glacier",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "maxzoom": 8,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ [
+ "==",
+ "subclass",
+ "glacier"
+ ]
+ ],
+ "layout": {
+ "visibility": "visible"
+ },
+ "paint": {
+ "fill-color": "hsl(0, 1%, 2%)",
+ "fill-opacity": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ 1
+ ],
+ [
+ 8,
+ 0.5
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "landuse_residential",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "maxzoom": 9,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ [
+ "==",
+ "class",
+ "residential"
+ ]
+ ],
+ "layout": {
+ "visibility": "visible"
+ },
+ "paint": {
+ "fill-color": "hsl(0, 2%, 5%)",
+ "fill-opacity": 0.4
+ }
+ },
+ {
+ "id": "landcover_wood",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "minzoom": 10,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ [
+ "==",
+ "class",
+ "wood"
+ ]
+ ],
+ "layout": {
+ "visibility": "visible"
+ },
+ "paint": {
+ "fill-color": "rgb(32,32,32)",
+ "fill-opacity": {
+ "base": 0.3,
+ "stops": [
+ [
+ 8,
+ 0
+ ],
+ [
+ 10,
+ 0.8
+ ],
+ [
+ 13,
+ 0.4
+ ]
+ ]
+ },
+ "fill-pattern": "wood-pattern",
+ "fill-translate": [
+ 0,
+ 0
+ ]
+ }
+ },
+ {
+ "id": "landuse_park",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ [
+ "==",
+ "class",
+ "park"
+ ]
+ ],
+ "layout": {
+ "visibility": "visible"
+ },
+ "paint": {
+ "fill-color": "rgb(32,32,32)"
+ }
+ },
+ {
+ "id": "waterway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ "layout": {
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgb(27 ,27 ,29)"
+ }
+ },
+ {
+ "id": "water_name",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "water_name",
+ "filter": [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 500,
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": [
+ "Metropolis Medium Italic",
+ "Noto Sans Italic"
+ ],
+ "text-rotation-alignment": "map",
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "hsla(0, 0%, 0%, 0.7)",
+ "text-halo-color": "hsl(0, 0%, 27%)"
+ }
+ },
+ {
+ "id": "building",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "building",
+ "minzoom": 12,
+ "filter": [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ "paint": {
+ "fill-antialias": true,
+ "fill-color": "rgb(10,10,10)",
+ "fill-outline-color": "rgb(27 ,27 ,29)"
+ }
+ },
+ {
+ "id": "aeroway-taxiway",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "1444849345966.4436"
+ },
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ [
+ "in",
+ "class",
+ "taxiway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#181818",
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.55,
+ "stops": [
+ [
+ 13,
+ 1.8
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "aeroway-runway-casing",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "1444849345966.4436"
+ },
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ [
+ "in",
+ "class",
+ "runway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgba(60,60,60,0.8)",
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.5,
+ "stops": [
+ [
+ 11,
+ 5
+ ],
+ [
+ 17,
+ 55
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "aeroway-area",
+ "type": "fill",
+ "metadata": {
+ "mapbox:group": "1444849345966.4436"
+ },
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 4,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ [
+ "in",
+ "class",
+ "runway",
+ "taxiway"
+ ]
+ ],
+ "layout": {
+ "visibility": "visible"
+ },
+ "paint": {
+ "fill-color": "#000",
+ "fill-opacity": 1
+ }
+ },
+ {
+ "id": "aeroway-runway",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "1444849345966.4436"
+ },
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ [
+ "in",
+ "class",
+ "runway"
+ ],
+ [
+ "==",
+ "$type",
+ "LineString"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#000",
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.5,
+ "stops": [
+ [
+ 11,
+ 4
+ ],
+ [
+ 17,
+ 50
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "road_area_pier",
+ "type": "fill",
+ "metadata": {},
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Polygon"
+ ],
+ [
+ "==",
+ "class",
+ "pier"
+ ]
+ ],
+ "layout": {
+ "visibility": "visible"
+ },
+ "paint": {
+ "fill-antialias": true,
+ "fill-color": "rgb(12,12,12)"
+ }
+ },
+ {
+ "id": "road_pier",
+ "type": "line",
+ "metadata": {},
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "in",
+ "class",
+ "pier"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "rgb(12,12,12)",
+ "line-width": {
+ "base": 1.2,
+ "stops": [
+ [
+ 15,
+ 1
+ ],
+ [
+ 17,
+ 4
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "highway_path",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "==",
+ "class",
+ "path"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgb(27 ,27 ,29)",
+ "line-dasharray": [
+ 1.5,
+ 1.5
+ ],
+ "line-opacity": 0.9,
+ "line-width": {
+ "base": 1.2,
+ "stops": [
+ [
+ 13,
+ 1
+ ],
+ [
+ 20,
+ 10
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "highway_minor",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "in",
+ "class",
+ "minor",
+ "service",
+ "track"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#181818",
+ "line-opacity": 0.9,
+ "line-width": {
+ "base": 1.55,
+ "stops": [
+ [
+ 13,
+ 1.8
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "highway_major_casing",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "in",
+ "class",
+ "primary",
+ "secondary",
+ "tertiary",
+ "trunk"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "miter",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgba(60,60,60,0.8)",
+ "line-dasharray": [
+ 12,
+ 0
+ ],
+ "line-width": {
+ "base": 1.3,
+ "stops": [
+ [
+ 10,
+ 3
+ ],
+ [
+ 20,
+ 23
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "highway_major_inner",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "in",
+ "class",
+ "primary",
+ "secondary",
+ "tertiary",
+ "trunk"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "hsl(0, 0%, 7%)",
+ "line-width": {
+ "base": 1.3,
+ "stops": [
+ [
+ 10,
+ 2
+ ],
+ [
+ 20,
+ 20
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "highway_major_subtle",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 6,
+ "maxzoom": 11,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "in",
+ "class",
+ "primary",
+ "secondary",
+ "tertiary",
+ "trunk"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#2a2a2a",
+ "line-width": {
+ "stops": [
+ [
+ 6,
+ 0
+ ],
+ [
+ 8,
+ 2
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "highway_motorway_casing",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 6,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "==",
+ "class",
+ "motorway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "butt",
+ "line-join": "miter",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgba(60,60,60,0.8)",
+ "line-dasharray": [
+ 2,
+ 0
+ ],
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.4,
+ "stops": [
+ [
+ 5.8,
+ 0
+ ],
+ [
+ 6,
+ 3
+ ],
+ [
+ 20,
+ 40
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "highway_motorway_inner",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 6,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "==",
+ "class",
+ "motorway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [
+ 5.8,
+ "hsla(0, 0%, 85%, 0.53)"
+ ],
+ [
+ 6,
+ "#000"
+ ]
+ ]
+ },
+ "line-width": {
+ "base": 1.4,
+ "stops": [
+ [
+ 4,
+ 2
+ ],
+ [
+ 6,
+ 1.3
+ ],
+ [
+ 20,
+ 30
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "road_oneway",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "oneway",
+ 1
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": "oneway",
+ "symbol-spacing": 200,
+ "icon-padding": 2,
+ "icon-rotation-alignment": "map",
+ "icon-rotate": 0,
+ "icon-size": {
+ "stops": [
+ [
+ 15,
+ 0.5
+ ],
+ [
+ 19,
+ 1
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-opacity": 0.5
+ }
+ },
+ {
+ "id": "road_oneway_opposite",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "oneway",
+ -1
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": "oneway",
+ "symbol-spacing": 200,
+ "icon-padding": 2,
+ "icon-rotation-alignment": "map",
+ "icon-rotate": 180,
+ "icon-size": {
+ "stops": [
+ [
+ 15,
+ 0.5
+ ],
+ [
+ 19,
+ 1
+ ]
+ ]
+ }
+ },
+ "paint": {
+ "icon-opacity": 0.5
+ }
+ },
+ {
+ "id": "highway_motorway_subtle",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 6,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "==",
+ "class",
+ "motorway"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "#181818",
+ "line-width": {
+ "base": 1.4,
+ "stops": [
+ [
+ 4,
+ 2
+ ],
+ [
+ 6,
+ 1.3
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "railway_transit",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "all",
+ [
+ "==",
+ "class",
+ "transit"
+ ],
+ [
+ "!in",
+ "brunnel",
+ "tunnel"
+ ]
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgb(35,35,35)",
+ "line-width": 3
+ }
+ },
+ {
+ "id": "railway_transit_dashline",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "all",
+ [
+ "==",
+ "class",
+ "transit"
+ ],
+ [
+ "!in",
+ "brunnel",
+ "tunnel"
+ ]
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgb(12,12,12)",
+ "line-dasharray": [
+ 3,
+ 3
+ ],
+ "line-width": 2
+ }
+ },
+ {
+ "id": "railway_minor",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "all",
+ [
+ "==",
+ "class",
+ "rail"
+ ],
+ [
+ "has",
+ "service"
+ ]
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgb(35,35,35)",
+ "line-width": 3
+ }
+ },
+ {
+ "id": "railway_minor_dashline",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "all",
+ [
+ "==",
+ "class",
+ "rail"
+ ],
+ [
+ "has",
+ "service"
+ ]
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgb(12,12,12)",
+ "line-dasharray": [
+ 3,
+ 3
+ ],
+ "line-width": 2
+ }
+ },
+ {
+ "id": "railway",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "==",
+ "class",
+ "rail"
+ ],
+ [
+ "!has",
+ "service"
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgb(35,35,35)",
+ "line-width": {
+ "base": 1.3,
+ "stops": [
+ [
+ 16,
+ 3
+ ],
+ [
+ 20,
+ 7
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "railway_dashline",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "==",
+ "class",
+ "rail"
+ ],
+ [
+ "!has",
+ "service"
+ ]
+ ],
+ "layout": {
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-color": "rgb(12,12,12)",
+ "line-dasharray": [
+ 3,
+ 3
+ ],
+ "line-width": {
+ "base": 1.3,
+ "stops": [
+ [
+ 16,
+ 2
+ ],
+ [
+ 20,
+ 6
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "highway_name_other",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "filter": [
+ "all",
+ [
+ "!=",
+ "class",
+ "motorway"
+ ],
+ [
+ "==",
+ "$type",
+ "LineString"
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 350,
+ "text-field": "{name:latin} {name:nonlatin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-max-angle": 30,
+ "text-pitch-alignment": "viewport",
+ "text-rotation-alignment": "map",
+ "text-size": 10,
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "rgba(80, 78, 78, 1)",
+ "text-halo-blur": 0,
+ "text-halo-color": "rgba(0, 0, 0, 1)",
+ "text-halo-width": 1,
+ "text-translate": [
+ 0,
+ 0
+ ]
+ }
+ },
+ {
+ "id": "highway_name_motorway",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"
+ },
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "LineString"
+ ],
+ [
+ "==",
+ "class",
+ "motorway"
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 350,
+ "text-field": "{ref}",
+ "text-font": [
+ "Metropolis Light",
+ "Noto Sans Regular"
+ ],
+ "text-pitch-alignment": "viewport",
+ "text-rotation-alignment": "viewport",
+ "text-size": 10,
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 37%)",
+ "text-translate": [
+ 0,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "boundary_state",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "a14c9607bc7954ba1df7205bf660433f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "filter": [
+ "==",
+ "admin_level",
+ 4
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round",
+ "visibility": "visible"
+ },
+ "paint": {
+ "line-blur": 0.4,
+ "line-color": "hsl(0, 0%, 21%)",
+ "line-dasharray": [
+ 2,
+ 2
+ ],
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.3,
+ "stops": [
+ [
+ 3,
+ 1
+ ],
+ [
+ 22,
+ 15
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "boundary_country_z0-4",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "a14c9607bc7954ba1df7205bf660433f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "maxzoom": 5,
+ "filter": [
+ "all",
+ [
+ "==",
+ "admin_level",
+ 2
+ ],
+ [
+ "!has",
+ "claimed_by"
+ ]
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-blur": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ 0.4
+ ],
+ [
+ 22,
+ 4
+ ]
+ ]
+ },
+ "line-color": "hsl(0, 0%, 23%)",
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.1,
+ "stops": [
+ [
+ 3,
+ 1
+ ],
+ [
+ 22,
+ 20
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "boundary_country_z5-",
+ "type": "line",
+ "metadata": {
+ "mapbox:group": "a14c9607bc7954ba1df7205bf660433f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "minzoom": 5,
+ "filter": [
+ "==",
+ "admin_level",
+ 2
+ ],
+ "layout": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "paint": {
+ "line-blur": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ 0.4
+ ],
+ [
+ 22,
+ 4
+ ]
+ ]
+ },
+ "line-color": "hsl(0, 0%, 23%)",
+ "line-opacity": 1,
+ "line-width": {
+ "base": 1.1,
+ "stops": [
+ [
+ 3,
+ 1
+ ],
+ [
+ 22,
+ 20
+ ]
+ ]
+ }
+ }
+ },
+ {
+ "id": "place_other",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "in",
+ "class",
+ "hamlet",
+ "isolated_dwelling",
+ "neighbourhood"
+ ]
+ ],
+ "layout": {
+ "text-anchor": "center",
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-justify": "center",
+ "text-offset": [
+ 0.5,
+ 0
+ ],
+ "text-size": 10,
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "rgb(101,101,101)",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place_suburb",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "==",
+ "class",
+ "suburb"
+ ]
+ ],
+ "layout": {
+ "text-anchor": "center",
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-justify": "center",
+ "text-offset": [
+ 0.5,
+ 0
+ ],
+ "text-size": 10,
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "rgb(101,101,101)",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place_village",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "==",
+ "class",
+ "village"
+ ]
+ ],
+ "layout": {
+ "icon-size": 0.4,
+ "text-anchor": "left",
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-justify": "left",
+ "text-offset": [
+ 0.5,
+ 0.2
+ ],
+ "text-size": 10,
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "icon-opacity": 0.7,
+ "text-color": "rgb(101,101,101)",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place_town",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 15,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "==",
+ "class",
+ "town"
+ ]
+ ],
+ "layout": {
+ "icon-image": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ "circle-11"
+ ],
+ [
+ 9,
+ ""
+ ]
+ ]
+ },
+ "icon-size": 0.4,
+ "text-anchor": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ "left"
+ ],
+ [
+ 8,
+ "center"
+ ]
+ ]
+ },
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-justify": "left",
+ "text-offset": [
+ 0.5,
+ 0.2
+ ],
+ "text-size": 10,
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "icon-opacity": 0.7,
+ "text-color": "rgb(101,101,101)",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place_city",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "==",
+ "class",
+ "city"
+ ],
+ [
+ ">",
+ "rank",
+ 3
+ ]
+ ],
+ "layout": {
+ "icon-image": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ "circle-11"
+ ],
+ [
+ 9,
+ ""
+ ]
+ ]
+ },
+ "icon-size": 0.4,
+ "text-anchor": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ "left"
+ ],
+ [
+ 8,
+ "center"
+ ]
+ ]
+ },
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-justify": "left",
+ "text-offset": [
+ 0.5,
+ 0.2
+ ],
+ "text-size": 10,
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "icon-opacity": 0.7,
+ "text-color": "rgb(101,101,101)",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place_city_large",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 12,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "<=",
+ "rank",
+ 3
+ ],
+ [
+ "==",
+ "class",
+ "city"
+ ]
+ ],
+ "layout": {
+ "icon-image": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ "circle-11"
+ ],
+ [
+ 9,
+ ""
+ ]
+ ]
+ },
+ "icon-size": 0.4,
+ "text-anchor": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ "left"
+ ],
+ [
+ 8,
+ "center"
+ ]
+ ]
+ },
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-justify": "left",
+ "text-offset": [
+ 0.5,
+ 0.2
+ ],
+ "text-size": 14,
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "icon-opacity": 0.7,
+ "text-color": "rgb(101,101,101)",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place_state",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 12,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "==",
+ "class",
+ "state"
+ ]
+ ],
+ "layout": {
+ "text-field": "{name:latin}\n{name:nonlatin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-size": 10,
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "rgb(101,101,101)",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place_country_other",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 8,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "==",
+ "class",
+ "country"
+ ],
+ [
+ "!has",
+ "iso_a2"
+ ]
+ ],
+ "layout": {
+ "text-field": "{name:latin}",
+ "text-font": [
+ "Metropolis Light Italic",
+ "Noto Sans Italic"
+ ],
+ "text-size": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ 9
+ ],
+ [
+ 1,
+ 11
+ ]
+ ]
+ },
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "rgb(101,101,101)",
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1.4
+ }
+ },
+ {
+ "id": "place_country_minor",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 8,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "==",
+ "class",
+ "country"
+ ],
+ [
+ ">=",
+ "rank",
+ 2
+ ],
+ [
+ "has",
+ "iso_a2"
+ ]
+ ],
+ "layout": {
+ "text-field": "{name:latin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-size": {
+ "base": 1,
+ "stops": [
+ [
+ 0,
+ 10
+ ],
+ [
+ 6,
+ 12
+ ]
+ ]
+ },
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "rgb(101,101,101)",
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1.4
+ }
+ },
+ {
+ "id": "place_country_major",
+ "type": "symbol",
+ "metadata": {
+ "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"
+ },
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 6,
+ "filter": [
+ "all",
+ [
+ "==",
+ "$type",
+ "Point"
+ ],
+ [
+ "<=",
+ "rank",
+ 1
+ ],
+ [
+ "==",
+ "class",
+ "country"
+ ],
+ [
+ "has",
+ "iso_a2"
+ ]
+ ],
+ "layout": {
+ "text-anchor": "center",
+ "text-field": "{name:latin}",
+ "text-font": [
+ "Metropolis Regular",
+ "Noto Sans Regular"
+ ],
+ "text-size": {
+ "base": 1.4,
+ "stops": [
+ [
+ 0,
+ 10
+ ],
+ [
+ 3,
+ 12
+ ],
+ [
+ 4,
+ 14
+ ]
+ ]
+ },
+ "text-transform": "uppercase",
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "rgb(101,101,101)",
+ "text-halo-color": "rgba(0,0,0,0.7)",
+ "text-halo-width": 1.4
+ }
+ }
+ ],
+ "id": "dark-matter"
+}
\ No newline at end of file
diff --git a/sitemap.xml b/sitemap.xml
index b293b1d..b74bf44 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -1 +1 @@
-https://test.openbikesensor.org/faq/build/woher-bekomme-ich-einen-openbikesensor/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/faq/build/ich-bin-neuling/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/faq/build/was-kostet-ein-openbikesensor/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/firmware/flash-python/ 2024-05-11T22:05:15+02:00 https://test.openbikesensor.org/docs/firmware/flash-linux/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/classic/case/printing/ 2024-01-20T15:13:30+00:00 https://test.openbikesensor.org/faq/build/woher-bekomme-ich-eine-platine/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/other/collective-order/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/user-guide/quickstart/ 2024-02-15T19:21:57+01:00 https://test.openbikesensor.org/docs/classic/about/ 2024-02-15T19:21:57+01:00 https://test.openbikesensor.org/faq/data/welche-daten-werden-aufgezeichnet/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/firmware/flash-windows/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/firmware/flash-macos/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/user-guide/mounting/ 2024-02-15T19:21:57+01:00 https://test.openbikesensor.org/docs/classic/parts/ 2024-03-19T07:32:08+01:00 https://test.openbikesensor.org/docs/user-guide/ 2023-02-06T14:23:45+01:00 https://test.openbikesensor.org/docs/user-guide/configuration/ 2024-02-22T23:41:15+01:00 https://test.openbikesensor.org/docs/classic/pcb/ 2024-02-17T14:03:34+01:00 https://test.openbikesensor.org/faq/data/wie-werden-die-daten-verarbeitet/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/user-guide/recording/ 2024-02-22T23:41:15+01:00 https://test.openbikesensor.org/docs/classic/case/parts/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/classic/case/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/classic/ 2023-02-06T15:50:51+01:00 https://test.openbikesensor.org/docs/classic/build-instructions/ 2024-05-11T22:06:50+02:00 https://test.openbikesensor.org/docs/other/privacy-zones/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/classic/case/variants/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/firmware/ 2024-02-15T19:21:57+01:00 https://test.openbikesensor.org/docs/user-guide/track-upload/ 2024-02-22T23:33:31+01:00 https://test.openbikesensor.org/docs/classic/case/color-prints/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/other/ 2023-02-06T14:46:11+01:00 https://test.openbikesensor.org/docs/user-guide/simra/ 2024-02-22T23:33:31+01:00 https://test.openbikesensor.org/faq/data/warum-gibt-es-mehrere-portale/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/faq/data/wie-funktionieren-privacy-zones/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/classic/troubleshooting/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/blog/2024/02/01/nachruf/ 2024-02-16T21:58:40+01:00 https://test.openbikesensor.org/blog/2022/02/17/openbikesensor-mit-deutschem-fahrradpreis-ausgezeichnet/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/blog/2021/12/07/gr%C3%BCndung-des-gemeinn%C3%BCtzigen-vereins-openbikesensor/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/blog/2021/11/12/startschuss-f%C3%BCr-neues-openbikesensor-forum/ 2021-11-12T11:32:30+01:00 https://test.openbikesensor.org/blog/2021/06/17/openbikesensor-zu-gast-im-achter/ 2021-07-09T19:53:43+02:00 https://test.openbikesensor.org/blog/2021/05/24/der-openbikesensor-im-deutschlandfunk/ 2021-05-24T16:02:33+02:00 https://test.openbikesensor.org/blog/2021/03/28/das-projekt-openbikesensor-im-ersten/ 2022-12-30T15:07:54+01:00 https://test.openbikesensor.org/blog/2021/03/23/openbikesensor-goes-lgpl/ 2021-07-09T18:23:44+02:00 https://test.openbikesensor.org/docs/classic/build-instructions/v00.03.12/ 2023-12-16T16:28:24+01:00 https://test.openbikesensor.org/faq/build/ 2021-05-14T16:54:31+02:00 https://test.openbikesensor.org/blog/ 2023-02-05T19:44:48+01:00 https://test.openbikesensor.org/community/ 2024-02-15T22:41:59+01:00 https://test.openbikesensor.org/faq/data/ 2021-05-14T16:54:31+02:00 https://test.openbikesensor.org/docs/ 2024-02-16T22:08:51+01:00 https://test.openbikesensor.org/faq/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/device/ 2024-02-15T22:41:59+01:00 https://test.openbikesensor.org/map/ 2024-02-15T19:21:57+01:00 https://test.openbikesensor.org/contact/ 2024-03-08T16:39:12+01:00 https://test.openbikesensor.org/aliases/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/other/visualization/ 2024-01-20T15:13:30+00:00 https://test.openbikesensor.org/verein/ 2024-02-17T00:15:57+01:00 https://test.openbikesensor.org/ 2024-02-22T22:14:22+01:00
\ No newline at end of file
+https://test.openbikesensor.org/faq/build/woher-bekomme-ich-einen-openbikesensor/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/faq/build/ich-bin-neuling/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/faq/build/was-kostet-ein-openbikesensor/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/firmware/flash-python/ 2024-05-11T22:05:15+02:00 https://test.openbikesensor.org/docs/firmware/flash-linux/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/classic/case/printing/ 2024-01-20T15:13:30+00:00 https://test.openbikesensor.org/faq/build/woher-bekomme-ich-eine-platine/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/other/collective-order/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/user-guide/quickstart/ 2024-02-15T19:21:57+01:00 https://test.openbikesensor.org/docs/classic/about/ 2024-02-15T19:21:57+01:00 https://test.openbikesensor.org/faq/data/welche-daten-werden-aufgezeichnet/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/firmware/flash-windows/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/firmware/flash-macos/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/user-guide/mounting/ 2024-02-15T19:21:57+01:00 https://test.openbikesensor.org/docs/classic/parts/ 2024-03-19T07:32:08+01:00 https://test.openbikesensor.org/docs/user-guide/ 2023-02-06T14:23:45+01:00 https://test.openbikesensor.org/docs/user-guide/configuration/ 2024-02-22T23:41:15+01:00 https://test.openbikesensor.org/docs/classic/pcb/ 2024-02-17T14:03:34+01:00 https://test.openbikesensor.org/faq/data/wie-werden-die-daten-verarbeitet/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/user-guide/recording/ 2024-02-22T23:41:15+01:00 https://test.openbikesensor.org/docs/classic/case/parts/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/classic/case/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/classic/ 2023-02-06T15:50:51+01:00 https://test.openbikesensor.org/docs/classic/build-instructions/ 2024-05-11T22:06:50+02:00 https://test.openbikesensor.org/docs/other/privacy-zones/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/classic/case/variants/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/firmware/ 2024-02-15T19:21:57+01:00 https://test.openbikesensor.org/docs/user-guide/track-upload/ 2024-02-22T23:33:31+01:00 https://test.openbikesensor.org/docs/classic/case/color-prints/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/other/ 2023-02-06T14:46:11+01:00 https://test.openbikesensor.org/docs/user-guide/simra/ 2024-02-22T23:33:31+01:00 https://test.openbikesensor.org/faq/data/warum-gibt-es-mehrere-portale/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/faq/data/wie-funktionieren-privacy-zones/ 2024-02-17T14:00:01+01:00 https://test.openbikesensor.org/docs/classic/troubleshooting/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/blog/2024/02/01/nachruf/ 2024-02-16T21:58:40+01:00 https://test.openbikesensor.org/blog/2022/02/17/openbikesensor-mit-deutschem-fahrradpreis-ausgezeichnet/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/blog/2021/12/07/gr%C3%BCndung-des-gemeinn%C3%BCtzigen-vereins-openbikesensor/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/blog/2021/11/12/startschuss-f%C3%BCr-neues-openbikesensor-forum/ 2021-11-12T11:32:30+01:00 https://test.openbikesensor.org/blog/2021/06/17/openbikesensor-zu-gast-im-achter/ 2021-07-09T19:53:43+02:00 https://test.openbikesensor.org/blog/2021/05/24/der-openbikesensor-im-deutschlandfunk/ 2021-05-24T16:02:33+02:00 https://test.openbikesensor.org/blog/2021/03/28/das-projekt-openbikesensor-im-ersten/ 2022-12-30T15:07:54+01:00 https://test.openbikesensor.org/blog/2021/03/23/openbikesensor-goes-lgpl/ 2021-07-09T18:23:44+02:00 https://test.openbikesensor.org/docs/classic/build-instructions/v00.03.12/ 2023-12-16T16:28:24+01:00 https://test.openbikesensor.org/faq/build/ 2021-05-14T16:54:31+02:00 https://test.openbikesensor.org/blog/ 2023-02-05T19:44:48+01:00 https://test.openbikesensor.org/community/ 2024-02-15T22:41:59+01:00 https://test.openbikesensor.org/faq/data/ 2021-05-14T16:54:31+02:00 https://test.openbikesensor.org/docs/ 2024-02-16T22:08:51+01:00 https://test.openbikesensor.org/faq/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/device/ 2024-02-15T22:41:59+01:00 https://test.openbikesensor.org/map/ 2024-05-19T10:21:40+02:00 https://test.openbikesensor.org/contact/ 2024-03-08T16:39:12+01:00 https://test.openbikesensor.org/aliases/ 2024-01-20T12:17:05+01:00 https://test.openbikesensor.org/docs/other/visualization/ 2024-01-20T15:13:30+00:00 https://test.openbikesensor.org/verein/ 2024-02-17T00:15:57+01:00 https://test.openbikesensor.org/ 2024-02-22T22:14:22+01:00
\ No newline at end of file