Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
mw.loader.using([], function () {
  function addCss(url) {
    if (document.querySelector('link[href="' + url + '"]')) {
      return;
    }
    var link = document.createElement('link');
    link.rel = 'stylesheet';
    link.href = url;
    document.head.appendChild(link);
  }

  function addScript(url) {
    return new Promise(function (resolve, reject) {
      if (document.querySelector('script[src="' + url + '"]')) {
        resolve();
        return;
      }
      var script = document.createElement('script');
      script.src = url;
      script.onload = resolve;
      script.onerror = reject;
      document.head.appendChild(script);
    });
  }

  function initMap() {
    var el = document.getElementById('mapdemo');
    if (!el || el.dataset.mapdemoReady) {
      return;
    }
    el.dataset.mapdemoReady = '1';

    var lat = 47.0707;
    var lon = 15.4395;
    var zoom = 13;

 // 1) Fullscreen-CSS laden (egal wann vor Nutzung)
  addCss('https://unpkg.com/leaflet.fullscreen@2.4.0/Control.FullScreen.css');

  // 2) Erst Fullscreen-JS laden, DANN Map erstellen
  addScript('https://unpkg.com/leaflet.fullscreen@2.4.0/Control.FullScreen.js')
    .then(function () {

    var map = L.map(el).setView([lat, lon], zoom);

    var orthofoto = L.tileLayer(
      'https://mapsneu.wien.gv.at/basemap/bmaporthofoto30cm/normal/google3857/{z}/{y}/{x}.jpeg',
      {
        attribution: 'basemap.at'
      }
    );

    var osm = L.tileLayer(
      'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
      {
        attribution: '© OpenStreetMap-Mitwirkende'
      }
    );

    orthofoto.addTo(map);

    L.marker([lat, lon]).addTo(map)
      .bindPopup('Test-Stecknadel')
      .openPopup();

    L.control.layers(
      {
        'Luftbild': orthofoto,
        'OSM': osm
      },
      {}
    ).addTo(map);
  }

  addCss('https://unpkg.com/leaflet@1.9.4/dist/leaflet.css');

  addScript('https://unpkg.com/leaflet@1.9.4/dist/leaflet.js')
    .then(initMap)
    .catch(function () {
      console.error('Leaflet konnte nicht geladen werden.');
    });
});