Sonnenaufgang, Sonnenuntergang als Webservice und CORS

Rufen Sie die Sonnenauf- und Sonnenuntergang-Zeiten per Webservice ab

Webservices erfreuen sich zunehmender Beliebtheit. Insbesondere wird infolge CORS Cross-Origin Resource Sharing der Einbau fremder Webressourcen in die eigene Seite recht einfach mit AJAX möglich.

Zum Testen des Webservices klicken Sie hier, Sonnenauf- und Sonnenuntergang wird ausgegeben für das aktuelle Datum und den Ort Frankfurt am Main.

Die AJAX-Response wird als JSON-String gesendet und sieht beispielsweise so aus: {"sunrise": "07:03", "sunset": "18:10"}. Sie können den dazu erforderlichen Request auch hier zur Laufzeit erzeugen, betätigen Sie danach den Back-Button um auf diese Seite zurückzukommen.

Webservice API

Notieren Sie für den AJAX-Request auf Ihrer Webseite:

if(! window.JSON ) {alert('JSON wird nicht unterstützt')}

function fetchdata(callbackfunktion){
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4 && xhr.status == 200){
            callbackfunktion(xhr.response);
        }
    };

    xhr.open("GET", 'http://rolfrost.de/sunservice.html?year=2017;month=11;day=23;long=8.65;lat=50.11;tz=1;dst=', true);
    xhr.send(null);
}

// Callback Funktion als Beispiel
function callbackfunktion(response){
    var res = JSON.parse(response);
    alert("Sonnenaufgang: " + res.sunrise + " Sonnenuntergang: " + res.sunset);

}

Parameter für den GET-Request

Beispiele für Werte siehe CODE obenstehend. Die Parameter können auch mit dem & (Ampersand, Kaufmannsund) getrennt werden. Für Longitude bzw. Latitude gilt folgende Vereinbarung:

   Eastern longitude is entered as a positive number
   Western longitude is entered as a negative number
   Northern latitude is entered as a positive number
   Southern latitude is entered as a negative number

Die zurückgegebenen Zeitangaben beziehen sich entsprechend der mitgebenen Zeitzone (tz) und ggf. Sommerzeit (dst) auf die Ortszeit.

API zum direkten Einbinden eines Objekts

Notieren Sie einen Script-Tag mit folgendem src-Attribut:

<script src="http://rolfrost.de/sunservice.html?year=2015;month=3;day=7;long=8.65;lat=50.11;tz=1;dst=0;obj=SUN"> </script>

so können Sie innerhalb JavaScript direkt auf das Object SUN mit den Attributen SUN.rise und SUN.set zugreifen. Der Name für Ihr eigenes Objekt wird per Parameter übergeben, SUN ist das Beispiel.

API zum Einbinden einer Callbackfunktion

Diese Schnittstelle ist besonders einfach, notieren Sie auf Ihrer Seite:

<script src="http://rolfrost.de/geosun.js"> </script>

Alles was Sie dann noch brauchen, ist eine Callbackfunktion, Name siehe untenstehend:

    function geosun(obj){
        console.log(obj.geo.longitude, obj.geo.latitude, obj.geo.tz, obj.sun.rise, obj.sun.set);
    }

Diese Callbackfunktion empfängt ein Objekt, obenstehender Code zeigt, welche Attribute damit zur Verfügung stehen. Die geographischen Angaben werden automatisch im Browser des Besuchers ermittelt, er sieht die Zeiten für Sonnenauf- und Untergang direkt in seiner Ortszeit.

Disclaimer

Die Verwendung der API erfolgt auf eigenes Risiko, für die Richtigkeit der berechneten Daten wird keine Garantie übernommen.


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.