Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Schweizer Geodaten, POIs und Tourismus. Orte/Adressen suchen, Höhen abfragen, städtische POIs finden (Restaurants, Cafés, Sehenswürdigkeiten via OpenStreetMap), ÖV-Fahrplan, Kartenlinks. Nutze bei Fragen zu Schweizer Orten, Attraktionen, Ausflügen oder Koordinaten.
Schweizer Geodaten, POIs und Tourismus. Orte/Adressen suchen, Höhen abfragen, städtische POIs finden (Restaurants, Cafés, Sehenswürdigkeiten via OpenStreetMap), ÖV-Fahrplan, Kartenlinks. Nutze bei Fragen zu Schweizer Orten, Attraktionen, Ausflügen oder Koordinaten.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Zugriff auf Swisstopo-Geodaten für die Schweiz.
curl -s "https://api3.geo.admin.ch/rest/services/api/SearchServer?searchText=SUCHTEXT&type=locations&sr=4326" Gibt lat/lon (WGS84), Label, Gemeinde zurück type=locations für Adressen/Orte, type=layers für Layer-Suche
Zuerst Koordinaten via Suche holen, dann in LV95 umrechnen: # Umrechnung WGS84 → LV95 (grobe Näherung für Schweiz): # easting = 2600000 + (lon - 7.4) * 73000 # northing = 1200000 + (lat - 46.95) * 111000 curl -s "https://api3.geo.admin.ch/rest/services/height?easting=EASTING&northing=NORTHING&sr=2056" Gibt Höhe in Metern über Meer zurück.
curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/identify?geometryType=esriGeometryPoint&geometry=LON,LAT&tolerance=0&layers=all:LAYER_ID&sr=4326" Wichtige Layer-IDs: ch.swisstopo.swissboundaries3d-gemeinde-flaeche.fill — Gemeindegrenzen ch.swisstopo.swissboundaries3d-kanton-flaeche.fill — Kantonsgrenzen ch.bafu.bundesinventare-flachmoore — Flachmoore ch.bafu.schutzgebiete-paerke_nationaler_bedeutung — Naturpärke
https://map.geo.admin.ch/?lang=de&topic=ech&bgLayer=ch.swisstopo.pixelkarte-farbe&E=LON&N=LAT&zoom=ZOOM zoom: 0-13 (13 = max Detail) E/N: WGS84 Koordinaten layers: Komma-getrennte Layer-IDs zum Einblenden
Suchen: curl -s "https://api3.geo.admin.ch/rest/services/api/SearchServer?searchText=Matterhorn&type=locations&sr=4326" → lat=45.9766, lon=7.6586 Höhe abfragen (LV95): # easting ≈ 2600000 + (7.6586-7.4)*73000 = 2618878 # northing ≈ 1200000 + (45.9766-46.95)*111000 = 1091893 curl -s "https://api3.geo.admin.ch/rest/services/height?easting=2618878&northing=1091893&sr=2056" → 4477.5m Kartenlink: https://map.geo.admin.ch/?lang=de&E=7.6586&N=45.9766&zoom=10
# Wanderwege in einem Gebiet finden (bbox = west,south,east,north) curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/find?layer=ch.swisstopo.swisstlm3d-wanderwege&searchText=ORTSNAME&searchField=name" # Wanderwege an einem Punkt identifizieren curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/identify?geometryType=esriGeometryPoint&geometry=LON,LAT&tolerance=50&layers=all:ch.swisstopo.swisstlm3d-wanderwege&sr=4326&imageDisplay=500,500,96&mapExtent=5.9,45.8,10.5,47.8" Wanderweg-Kategorien: wanderweg — Gelb markiert (T1) bergwanderweg — Weiss-rot-weiss (T2-T3) alpinwanderweg — Weiss-blau-weiss (T4-T6) Kartenlink mit Wanderwegen: https://map.geo.admin.ch/?lang=de&E=LON&N=LAT&zoom=10&layers=ch.swisstopo.swisstlm3d-wanderwege&bgLayer=ch.swisstopo.pixelkarte-farbe
curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/identify?geometryType=esriGeometryPoint&geometry=LON,LAT&tolerance=5000&layers=all:ch.swisstopo.unterkuenfte-winter&sr=4326&imageDisplay=500,500,96&mapExtent=5.9,45.8,10.5,47.8" Kartenlink mit Hütten: https://map.geo.admin.ch/?lang=de&E=LON&N=LAT&zoom=11&layers=ch.swisstopo.unterkuenfte-winter&bgLayer=ch.swisstopo.pixelkarte-farbe
# Seilbahnen mit Bundeskonzession curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/identify?geometryType=esriGeometryPoint&geometry=LON,LAT&tolerance=2000&layers=all:ch.bav.seilbahnen-bundeskonzession&sr=4326&imageDisplay=500,500,96&mapExtent=5.9,45.8,10.5,47.8" # Alle Seilbahnen (swissTLM3D) curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/identify?geometryType=esriGeometryPoint&geometry=LON,LAT&tolerance=2000&layers=all:ch.swisstopo.swisstlm3d-uebrigerverkehr&sr=4326&imageDisplay=500,500,96&mapExtent=5.9,45.8,10.5,47.8" Kartenlink mit Bergbahnen: https://map.geo.admin.ch/?lang=de&E=LON&N=LAT&zoom=11&layers=ch.bav.seilbahnen-bundeskonzession&bgLayer=ch.swisstopo.pixelkarte-farbe
# Lawinengefahr curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/identify?geometryType=esriGeometryPoint&geometry=LON,LAT&tolerance=100&layers=all:ch.bafu.silvaprotect-lawinen&sr=4326&imageDisplay=500,500,96&mapExtent=5.9,45.8,10.5,47.8" # Sturzgefahr (Steinschlag, Felssturz) curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/identify?geometryType=esriGeometryPoint&geometry=LON,LAT&tolerance=100&layers=all:ch.bafu.silvaprotect-sturz&sr=4326&imageDisplay=500,500,96&mapExtent=5.9,45.8,10.5,47.8" # Hochwasser-Warnkarte (aktuell) curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/identify?geometryType=esriGeometryPoint&geometry=LON,LAT&tolerance=500&layers=all:ch.bafu.hydroweb-warnkarte_national&sr=4326&imageDisplay=500,500,96&mapExtent=5.9,45.8,10.5,47.8" Gefahren-Layer: Layer-IDBeschreibungch.bafu.silvaprotect-lawinenLawinengebietech.bafu.silvaprotect-sturzSturzgebietech.bafu.hydroweb-warnkarte_nationalHochwasser aktuellch.bafu.gefahren-waldbrand_warnungWaldbrandgefahrch.vbs.sperr-gefahrenzonenkarteMilitärische Sperrzonen Kartenlink mit Naturgefahren: https://map.geo.admin.ch/?lang=de&E=LON&N=LAT&zoom=12&layers=ch.bafu.silvaprotect-lawinen,ch.bafu.silvaprotect-sturz&bgLayer=ch.swisstopo.pixelkarte-farbe
Aktuelles Wetter (via wttr.in): curl -s "wttr.in/Zürich?format=%l:+%c+%t+%h+%w&lang=de" # Zürich: ⛅️ +5°C 78% ↙12km/h MeteoSwiss Warnungen (Karte): https://map.geo.admin.ch/?lang=de&layers=ch.meteoschweiz.gefahren-warnungen Lawinenbulletin SLF: Aktuell: https://www.slf.ch/de/lawinenbulletin-und-schneesituation.html API (experimentell): https://www.slf.ch/avalanche/mobile/bulletin_de.json Hochwasser BAFU (aktuelle Pegel): https://map.geo.admin.ch/?lang=de&layers=ch.bafu.hydroweb-messstationen_gefahren
Verbindung suchen: curl -s "https://transport.opendata.ch/v1/connections?from=Zürich&to=Bern&limit=3" Abfahrtstafel: curl -s "https://transport.opendata.ch/v1/stationboard?station=Zürich+HB&limit=5" Haltestelle suchen: curl -s "https://transport.opendata.ch/v1/locations?query=Paradeplatz" Beispiel-Output parsen: curl -s "https://transport.opendata.ch/v1/stationboard?station=Bern&limit=3" | python3 -c " import sys,json data = json.load(sys.stdin) for s in data.get('stationboard', []): time = s.get('stop', {}).get('departure', '')[11:16] cat = s.get('category', '') + s.get('number', '') print(f\"{time} {cat} → {s.get('to', '')}\")" Parameter: ParameterBeschreibungfrom / toStart/Ziel (Name oder ID)stationHaltestelle für AbfahrtstafellimitMax. ErgebnissedateDatum (YYYY-MM-DD)timeZeit (HH:MM)isArrivalTime1 = Ankunftszeit statt Abfahrt
ÖV-Haltestellen: curl -s "https://api3.geo.admin.ch/rest/services/api/MapServer/identify?geometryType=esriGeometryPoint&geometry=LON,LAT&tolerance=500&layers=all:ch.bav.haltestellen-oev&sr=4326&imageDisplay=500,500,96&mapExtent=5.9,45.8,10.5,47.8" Skitouren & Schneeschuhrouten: https://map.geo.admin.ch/?lang=de&E=LON&N=LAT&zoom=11&layers=ch.swisstopo-karto.skitouren,ch.swisstopo-karto.schneeschuhrouten&bgLayer=ch.swisstopo.pixelkarte-farbe Hangneigung (für Touren): https://map.geo.admin.ch/?lang=de&E=LON&N=LAT&zoom=13&layers=ch.swisstopo-karto.hangneigung&bgLayer=ch.swisstopo.pixelkarte-farbe
Kostenlos, kein API-Key nötig. Ideal für Restaurants, Cafés, Eisdielen, Museen, Sehenswürdigkeiten in Städten. Basis-Query (Bounding Box) # POIs in einem Gebiet suchen (south,west,north,east) # Beispiel: Eisdielen in Zürich-Zentrum curl -s "https://overpass-api.de/api/interpreter?data=%5Bout%3Ajson%5D%5Btimeout%3A10%5D%3Bnode%5B%22amenity%22%3D%22ice_cream%22%5D%2847.36%2C8.52%2C47.39%2C8.56%29%3Bout%3B" Query mit Stadt-Area (empfohlen) # Alle Eisdielen in der Stadt Zürich curl -s "https://overpass-api.de/api/interpreter" --data-urlencode 'data=[out:json][timeout:15]; area["name"="Zürich"]["admin_level"="8"]->.city; ( node["amenity"="ice_cream"](area.city); node["shop"="ice_cream"](area.city); ); out body;' Wichtige POI-Tags KategorieOSM-TagBeispiel🍦 Eisdieleamenity=ice_creamGelateria🍕 Restaurantamenity=restaurant+ cuisine=*☕ Caféamenity=cafe🍺 Bar/Pubamenity=bar / pub🏛️ Museumtourism=museum🎭 Theateramenity=theatre⛪ Kircheamenity=place_of_worship🏰 Sehenswürdigkeittourism=attraction👁️ Aussichtspunkttourism=viewpoint🎡 Freizeitparkleisure=amusement_arcade🏊 Schwimmbadleisure=swimming_pool+ access=yes🎮 Spielplatzleisure=playground🌳 Parkleisure=park Beispiel: Museen & Sehenswürdigkeiten in Zürich Altstadt curl -s "https://overpass-api.de/api/interpreter" --data-urlencode 'data=[out:json][timeout:15]; ( node["tourism"="museum"](47.366,8.538,47.378,8.548); node["tourism"="attraction"](47.366,8.538,47.378,8.548); node["historic"](47.366,8.538,47.378,8.548); ); out body;' Beispiel: Familienfreundliche Orte (Spielplätze, Parks) curl -s "https://overpass-api.de/api/interpreter" --data-urlencode 'data=[out:json][timeout:15]; area["name"="Zürich"]["admin_level"="8"]->.city; ( node["leisure"="playground"](area.city); way["leisure"="playground"](area.city); ); out center body;' Response parsen (Python) curl -s "https://overpass-api.de/api/interpreter?data=..." | python3 -c " import sys, json data = json.load(sys.stdin) for el in data.get('elements', []): tags = el.get('tags', {}) name = tags.get('name', 'Unbenannt') lat, lon = el.get('lat', el.get('center', {}).get('lat', '')), el.get('lon', el.get('center', {}).get('lon', '')) addr = tags.get('addr:street', '') website = tags.get('website', '') opening = tags.get('opening_hours', '') print(f'{name}') if addr: print(f' 📍 {addr} {tags.get(\"addr:housenumber\", \"\")}') if opening: print(f' 🕐 {opening}') if website: print(f' 🔗 {website}') print() " Koordinaten für Schweizer Städte (Bbox) StadtSouthWestNorthEastZürich Zentrum47.368.5247.398.56Zürich Altstadt47.3668.53847.3788.548Bern Zentrum46.947.4346.967.46Basel Zentrum47.557.5847.577.61Luzern Zentrum47.048.2947.068.32Genf Zentrum46.196.1346.216.16
⚠️ Benötigt API-Key (Header: x-api-key) Hinweis: Diese API ist primär für Outdoor-Tourismus (Wandern, Bergtouren, Regionen) geeignet. Für städtische POIs (Restaurants, Cafés, Museen) ist die Overpass API (Abschnitt 12) besser. Sehenswürdigkeiten suchen: curl -s "https://opendata.myswitzerland.io/v1/attractions/?lang=de&limit=5" \ -H "x-api-key: $MYSWITZERLAND_API_KEY" Touren suchen: curl -s "https://opendata.myswitzerland.io/v1/tours/?lang=de&limit=5" \ -H "x-api-key: $MYSWITZERLAND_API_KEY" Geodaten einer Tour (GeoJSON): curl -s "https://opendata.myswitzerland.io/v1/tours/TOUR_ID/geodata" \ -H "x-api-key: $MYSWITZERLAND_API_KEY" Destinationen: curl -s "https://opendata.myswitzerland.io/v1/destinations/?lang=de" \ -H "x-api-key: $MYSWITZERLAND_API_KEY" Response-Felder: name — Name der Attraktion/Tour abstract — Kurzbeschreibung geo.latitude, geo.longitude — Koordinaten classification — Kategorien (Saison, Typ, etc.)
Eisdielen via Overpass API suchen (Abschnitt 12) Sehenswürdigkeiten/Spielplätze in der Nähe finden ÖV-Verbindung dorthin (Abschnitt 10) Kartenlink generieren (Abschnitt 4)
Bergbahnen suchen (Abschnitt 7) Wanderwege finden (Abschnitt 5) Berghütten identifizieren (Abschnitt 6) MySwitzerland Touren abfragen (Abschnitt 13)
Städtische POIs → Overpass API (kostenlos, detailliert) Outdoor-Tourismus → MySwitzerland API (braucht Key) Karten & Geodaten → Swisstopo (kostenlos) ÖV-Fahrplan → transport.opendata.ch (kostenlos) Suchergebnisse enthalten origin (address, sn25, gg25, etc.) zur Kategorisierung Für genaue LV95-Koordinaten siehe references/api.md Kombiniere Swisstopo-Layer mit Komma: layers=layer1,layer2,layer3
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.