Abstraktes Header-Bild in den Farben von tsjdev apps

Blogbeitrag

What3Words Sample-App

Im Rahmen der Digitalen Woche in Kiel bin ich zum ersten Mal mit dem Dienst What3Words in Kontakt geraten. Dabei handelt es sich um einen Dienst, welche die Weltkarte in kleine Quadrate unterteilt und dann jedem Quadrat drei Begriffe zuordnet. Ziel soll es sein, dass sich diese Begriffe leichter merken lassen, da diese nicht zusammenhängen (wie zum Beispiel welche.tischtennis.bekannte), als eine Adresse inkl. Postleitzahl. Ich habe mich dann näher mit der API dieses Dienstes befasst und einen kleinen C#-Wrapper geschrieben, welcher die Basis-Funktionalitäten bereits abgedeckt.

Die aktuelle Version befindet sich auf NuGet . Ich habe mich jetzt noch einmal dran gesetzt und habe eine kleine Beispiel-Anwendung mit Xamarin.Forms geschrieben, welche aufzeigen soll, wie man diesen Dienst am Besten in seiner eigenen App verwenden kann.

Die App befindet sich auf GitHub und kann natürlich auch beliebig erweitert und ergänzt werden, weil dies wirklich nur ein einfaches Beispiel widerspiegeln soll.

Hier mal ein kleiner Ausblick auf die Android-Version

Diese App wird sicherlich keinen Schönheitspreis gewinnen, aber trotzdem zeigt sie, wie man mit wenig Aufwand den What3Words Wrapper in seine App integrieren kann. Zunächst wollen wir uns anschauen, wie wir aus einer Position in Form von Latitude und Longitude eine Adresse erzeugen können. Hierzu kommt die Methode GetReverseGeocodingAsync zum Einsatz. Zunächst wird eine Instanz des What3WordsServices erzeugt und anschließend Latitude und Longitude aus zwei Textfeldern eingelesen und entsprechend konvertiert. Nun erfolgt bereits der Aufruf der Methode GetReverseGeocodingAsync und als Ergebnis erhalten wir ein Objekt, welches in der Words-Property die gewünschten drei Begriffe als formatierten String beinhaltet.

private async void GetWhat3WordsAddressButtonOnClicked(object sender, EventArgs e)
{
  var what3wordsService = new What3WordsService("ApiKey", LanguageCode.EN);

  var latitude = double.Parse(LatitudeEntry.Text);
  var longitude = double.Parse(LongitudeEntry.Text);
  var result = await what3wordsService.GetReverseGeocodingAsync(latitude, longitude);

  // three words are stored in result.Words
}

Natürlich klappt auch die andere Richtung. Man kann also aus den drei Wörtern auch wieder eine Position ermitteln. Hierfür wird die Methode GetForewordGeocodingAsync verwendet. Der Aufbau ist hier analog zum oben beschriebenen Fall, wie auch das folgende Code-Snippet zeigt.

private async void GetAddressFromWhat3WordsAddressButtonOnClicked(object sender, EventArgs e)
{
  var what3wordsService = new What3WordsService("ApiKey", LanguageCode.EN);

  var address = AddressEntry.Text;
  var result = await what3wordsService.GetForewordGeocodingAsync(address);

  // lat/lng ar stored in result.Geometry.Lat/Lng
}

Wie man diesen beiden Beispielen entnehmen kann, ist die Verwendung der API eigentlich recht simpel und diese lässt sich schnell und einfach in die eigene App integrieren, um z.B. die aktuelle Position des Nutzers zu codieren.

Viel Spaß bei der Verwendung des API-Wrappers für What3Words .

Weiterempfehlen

Diesen Beitrag teilen

Wenn dir der Beitrag gefallen hat: gern weiterreichen. Gute Links dürfen sich ruhig schnell verbreiten.

Vorheriger/Nächster Beitrag

Ausgewählte Beiträge auch auf Medium Vorheriger Beitrag Ausgewählte Beiträge auch auf Medium Microsoft Display Dock als Docking-Station Nächster Beitrag Microsoft Display Dock als Docking-Station
Android Archive Erstellung schlägt fehl Android Archive Erstellung schlägt fehl Xamarin.iOS App mit Azure DevOps bauen Xamarin.iOS App mit Azure DevOps bauen Buch-Tipp: Cross-Plattform-Apps mit Xamarin.Forms entwickeln von André Krämer Buch-Tipp: Cross-Plattform-Apps mit Xamarin.Forms entwickeln von André Krämer Xamarin.Android App mit Azure DevOps bauen Xamarin.Android App mit Azure DevOps bauen
Lust auf ein kurzes digitales Hallo? Wenn du eine Idee teilen, eine Frage loswerden oder ein Projekt anschieben willst: mein Posteingang ist deutlich zuverlässiger als Brieftauben. apps@tsjdev-apps.de Mail schicken