webmapping

Session 4: Javascript Crashkurs

Heute werden wir in einem Javascript Crashkurs unsere Karte verfeinern und ein neues Feature implementieren.

Kommentare

Variablen

Datentypen

Number

Strings

Zeichenketten kann man auf drei verschiedene Arten definieren

  1. mit einfachen Anführungszeichen (single quote) wie bei L.tileLayer

     let url = 'https://tile.openstreetmap.org/{z}/{x}/{y}.png';
    
  2. mit doppelten Anführungszeichen (double quote) wie bei bindPopup

     marker.bindPopup("<b>Hello world!</b><br>I am a popup.");
    
  3. mit sogenannten Backticks die dem französischen Accent grave entsprechen und in unserem Beispiel noch nicht vorkommen. Der Vorteil von Backticks ist, dass sie auch Zeilenumbrüche innerhalb der Zeichenkette erlauben und wir in Backticks auch Variablen direkt verwenden können. Wir schreiben unser Popup mehrzeilig:

     marker.bindPopup(`
         <b>Hello world!</b>
         <br>
         I am a popup.
     `);
    

    COMMIT: https://github.com/webmapping/nz/commit/c6d0b3a157a78c98885670c866f9cab71dd4d318

    • die Schreibweise von Zeichenketten mit Backticks (auch Template literals oder Template strings genannt) werden wir in Zukunft sehr oft brauchen!

    • in Template strings können wir durch String interpolation mit ${} Variablen direkt verwenden. Alles zwischen den geschwungenen Klammern von ${} wird dabei als Javascript interpretiert

    • ergänzen wir beim Popup die Koordinaten für lat und lng mit jeweils 5-Nachkommastellen:

        marker.bindPopup(`
            <b>Hello world!</b>
            <br>
            I am a popup at ${lat.toFixed(5)} / ${lng.toFixed(5)}.
        `);
      

      COMMIT: https://github.com/webmapping/nz/commit/6300f54b1c6e75fd49b645931b2b14e935452f6a

    • verwenden wir nochmals Template strings beim Popup für:

      • eine Überschrift 2 mit dem Namen der Etappe

      • eine ungeordnete Liste mit zwei Einträgen für die geographische Länge und Breite - lest beide Werte aus den Variablen lat und lng und fügt jeweils ein Grad-Zeichen hinzu

      • beide Koordinaten sollen wieder mit fünf Nachkommastellen angezeigt werden

          marker.bindPopup(`
              <h2>Tongariro Nationalpark</h2>
              <ul>
                  <li>Breite: ${lat.toFixed(5)}°</li>
                  <li>Länge: ${lng.toFixed(5)}°</li>
              </ul>
          `);
        

      COMMIT: https://github.com/webmapping/nz/commit/d5f766b4bcc28f249fb43eaecd196e2a7925b576

Objects - “object literals”

Objects - Spezialfall Arrays

if-Abfragen

Bei if-Abfragen werden Anweisungen in Abhängigkeit von Bedingungen ausgeführt. Die Syntax besteht aus einem Keyword (z.B. if, else if, else) gefolgt von einer Bedingung (nicht bei else …) in runden Klammern und einer Anweisung in geschwungenen Klammern, die ausgeführt wird, wenn die Bedingung zutrifft.

Inhalte der HTML-Seite dynamisch ändern

Mit Javascript können wir nicht nur unsere Karte konfigurieren, sondern auch den Inhalte der HTML Seite ändern. Als Beispiel erstellen wir unterhalb der Karte ein Pull-Down-Menü mit allen Etappen und wechseln zur entsprechenden Etappenseite, wenn der/die Benutzer:in im Pulldown eine andere als die eigene Etappe auswählt.

COMMIT: https://github.com/webmapping/nz/commit/28fb523c1ea57d7cb670797ef8168f2e16cb0092