using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using gehGassi.Domain.Common; namespace gehGassi.Core.Interfaces { /// /// Schnittstellenbeschreibung für einen Service der zu einer Adresse Längen- und Breitengrad ermittelt, oder zu Längen- und Breitengrad eine Adresse /// public interface IGeoLocationService { /// /// Längen und Breitengrad zu einer Adresse suchen. /// Zuerst wird versucht die Position mit Strasse, PLZ, Ort und Land zu finden. /// Wenn das nicht klappt, dann mit PLZ, Ort, Land. /// Wenn das nicht klappt, dann PLZ Land. /// /// Adresse /// Gewünschte Sprache ISO2 /// Geo-Position Task GetLocationAsync(Address address, string language); /// /// Längen und Breitengrad zu einer Adresse suchen. /// /// Adresse als Text-Zeile /// Gewünschte Sprache ISO2 /// Geo-Position Task GetLocationAsync(string address, string language); /// /// Längen und Breitengrad zu einer Adresse suchen. Adresse wird mit Details mitgeliefert. /// Zuerst wird versucht die Position mit Strasse, PLZ, Ort und Land zu finden. /// Wenn das nicht klappt, dann mit PLZ, Ort, Land. /// Wenn das nicht klappt, dann PLZ Land. /// /// Adresse /// Gewünschte Sprache ISO2 /// Geo-Position Task GetLocationFillAsync(Address address, string language); /// /// Längen und Breitengrad zu einer Adresse suchen. Adresse wird mit Details mitgeliefert. /// /// Adresse als Text-Zeile /// Gewünschte Sprache ISO2 /// Geo-Position Task GetLocationFillAsync(string address, string language); /// /// Reverse-Geocoding /// /// Breitengrad /// Längengrad /// Gewünschte Sprache ISO2 /// ReverseLocation Task GetReverseAsync(double lat, double lng, string language); } /// /// Hilfsklasse - Ergebnis einer Geolokalisierung /// public class GeoLocation { /// /// Breitengrad /// public double Latitude { get; set; } /// /// Längengrad /// public double Longitude { get; set; } /// /// Anfrage erfolgreich? /// public bool Success { get; set; } /// /// Optionale Fehlermeldung wenn kein Erfolg /// public string ErrorMessage { get; set; } } /// /// Hilfsklasse - Ergbenis einer Geolokalisierung um Adresse ergänzt /// public class GeoLocationFill : GeoLocation { /// /// Adresse die gefunden wurde /// public Address Address { get; set; } /// /// Erstellt eine Instanz /// public GeoLocationFill() { Address = new Address(); } } /// /// Hilfsklasse - Ergebnis einer Geolokalisierung nach Lat Long /// public class ReverseLocation { /// /// Adresse die gefunden wurde /// public Address Address { get; set; } /// /// Anfrage erfolgreich? /// public bool Success { get; set; } /// /// Optionale Fehlermeldung wenn kein Erfolg /// public string ErrorMessage { get; set; } /// /// Erstellt eine Instanz /// public ReverseLocation() { Address = new Address(); } } /// /// Optionen für den Geolokalisierungs-Service /// public class GeoLocationOptions { /// /// Basis-URI /// public string BaseUri { get; set; } /// /// Name des Useragents der im Header gesetzt werden soll /// public string UserAgentName { get; set; } /// /// Version des UserAgents der im Header gesetzt werden soll /// public string UserAgentVersion { get; set; } } }