Altes Köln

Widget:Leaflet: Unterschied zwischen den Versionen

Aus Altes Köln
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 9: Zeile 9:
{{#ask:
{{#ask:
  [[Kategorie:Schule]]
  [[Kategorie:Schule]]
  |?Koordinaten
  |?Koordinaten.Latitude=lat
  |?Schultyp
  |?Koordinaten.Longitude=lon
  |?Name
  |?Name=name
|format=list
  |?Schultyp=type
  |template=SchulJSON
  |format=json
  |sep=,
|headers=hide
|link=none
  |plain=yes
  |plain=yes
|api=yes
}}
}}
</script>
</script>

Version vom 7. Dezember 2025, 19:46 Uhr



<script id="smw-data" type="application/json"> JSON </script>

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css"/> <script src="https://unpkg.com/leaflet@1.9.3/dist/leaflet.js"></script>

<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css"/> <link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css"/> <script src="https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js"></script>

<script> (function(){

   // JSON aus Scriptblock holen
   var raw = document.getElementById('smw-data').textContent.trim();
   // Debug: zeige den rohen SMW-Output auf der Seite
   document.getElementById('debug').textContent = raw;


   // JSON sicher parsen
   var schoolData = [];
   try {
       schoolData = JSON.parse(raw);
   } catch(e) {
       console.error("Fehler beim Parsen der SMW Daten:", e, raw);
       return;
   }
   // Karte erstellen
   var map = L.map('map').setView([50.94, 6.96], 11);
   L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
       maxZoom: 18,
       attribution:'© OpenStreetMap contributors'
   }).addTo(map);
   // Cluster Gruppen
   var clusters = {
       Grundschule:   L.markerClusterGroup(),
       Gymnasium:     L.markerClusterGroup(),
       Gesamtschule:  L.markerClusterGroup(),
       Berufskolleg:  L.markerClusterGroup(),
       Förderschule:  L.markerClusterGroup(),
       Unbekannt:     L.markerClusterGroup()
   };
   var bounds = [];
   // Marker erzeugen
   schoolData.forEach(function(s){
       if (!s.coords) return;
       var parts = s.coords.split(',');
       if (parts.length !== 2) return;
       var lat = parseFloat(parts[0]);
       var lon = parseFloat(parts[1]);
       if (isNaN(lat) || isNaN(lon)) return;
       var type = s.type || "Unbekannt";
       var marker = L.marker([lat, lon])
           .bindPopup('' + s.name + '
' + type);
       var group = clusters[type] || clusters.Unbekannt;
       group.addLayer(marker);
       bounds.push([lat, lon]);
   });
   // Alle Cluster zur Karte hinzufügen
   Object.values(clusters).forEach(function(g){
       map.addLayer(g);
   });
   // Layer-Steuerung
   L.control.layers(null, {
       "Grundschulen":  clusters.Grundschule,
       "Gymnasien":     clusters.Gymnasium,
       "Gesamtschulen": clusters.Gesamtschule,
       "Berufskollegs": clusters.Berufskolleg,
       "Förderschulen": clusters.Förderschule,
       "Sonstige":      clusters.Unbekannt
   }, {collapsed:false}).addTo(map);
   // Kartenausschnitt automatisch anpassen
   if (bounds.length) {
       map.fitBounds(bounds);
   }

})(); </script>

Cookies helfen uns bei der Bereitstellung von Altes Köln. Durch die Nutzung von Altes Köln erklärst du dich damit einverstanden, dass wir Cookies speichern.