Wenn man Koordinaten z.B. mündlich übermitteln will, kommt man schnell an seine Grenzen. Mit den 3 Wörtern von what3words funktioniert das sehr gut.
Für ein kleines Projekt wollte ich gern die vorhandenen Koordinaten in die 3 Worte umwandeln. Dies ist eigentlich ein simpler GET request. Mit JSON und cURL stoße ich leider an meine Grenzen und brauche einen Anstoß.
Eigentlich geht es nur um den Befehl: curl --request GET --url 'https://api.what3words.com/v3/convert-to-3wa?key=MY-API-KEY&coordinates=51.521251%2C-0.203586&language=en&format=json'
Wie in der Doku beschrieben. Zurück liefert der Befehl ein JSON.
Meine Frage ist, wie ich den Befehl im PHP-Skript schreiben muss, damit ich das JSON dann z.B. auf den JSON-Decoder in die einzelnen Werte aufteilen kann?
Mit dem hauseigenen JSON-Decoder ist das leichter als gedacht. Dazu der HTTP-Client, der die oben stehende url abfragt und mir wie gewünscht die Daten des JSON auflöst.
Jetzt stehe ich einzig noch vor der Frage, wie ich die url im HTTP-Client dynamisch (per Skript?) anpassen kann? Denn es ändern sich ja regelmäßig die Koordinaten.
Hab es dann doch noch irgendwie selbst zusammengeglaubt:
<?php
$API=getvaluestring(54847);
$lat=getvaluefloat(20306);
$long=getvaluefloat(42147);
//Umwandlung , in .
$lat=str_replace(",", ".", $lat);
$long=str_replace(",", ".", $long);
// erzeuge einen neuen cURL-Handle
$ch = curl_init();
// setze die URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, "https://api.what3words.com/v3/convert-to-3wa?key=".$API."&coordinates=".$lat."%2c".$long."&language=de&format=json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// führe die Aktion aus und gib die Daten aus
$result = curl_exec($ch);
// schließe den cURL-Handle und gib die Systemresourcen frei
curl_close($ch);
//Übergabe der Daten an ein VIO_JSON
VIO_PushText(24802, $result);