Xamarin.Essentials: GeocodierungXamarin.Essentials: Geocoding

Die Klasse Geocoding stellt APIs bereit, um sowohl eine Ortsmarkierung (Placemark) mit Positionskoordinaten zu geocodieren als auch Geocode-Koordinaten in eine Ortsmarkierung umzuwandeln.The Geocoding class provides APIs to geocode a placemark to a positional coordinates and reverse geocode coordinates to a placemark.

Erste SchritteGet started

Lesen Sie zum Einstieg in diese API das Handbuch Erste Schritte mit Xamarin.Essentials, um sicherzustellen, dass die Bibliothek ordnungsgemäß installiert und in Ihren Projekten eingerichtet ist.To start using this API, read the getting started guide for Xamarin.Essentials to ensure the library is properly installed and set up in your projects.

Für den Zugriff auf die Geocodierungsfunktion ist die folgende plattformspezifische Einrichtung erforderlich.To access the Geocoding functionality the following platform specific setup is required.

Es ist kein zusätzliches Setup erforderlich.No additional setup required.

Verwenden der GeocodierungUsing Geocoding

Fügen Sie Ihrer Klasse einen Verweis auf Xamarin.Essentials hinzu:Add a reference to Xamarin.Essentials in your class:

using Xamarin.Essentials;

Abrufen von Standortkoordinaten für eine Adresse:Getting location coordinates for an address:

try
{
    var address =  "Microsoft Building 25 Redmond WA USA";
    var locations = await Geocoding.GetLocationsAsync(address);

    var location = locations?.FirstOrDefault();
    if (location != null)
    {
        Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");
    }
}
catch (FeatureNotSupportedException fnsEx)
{
    // Feature not supported on device
}
catch (Exception ex)
{
    // Handle exception that may have occurred in geocoding
}

Die Höhe ist nicht immer verfügbar.The altitude isn't always available. Wenn sie nicht verfügbar ist, ist die Eigenschaft Altitude möglicherweise null, oder der Wert ist 0 (null).If it is not available, the Altitude property might be null or the value might be zero. Ist die Höhe verfügbar, ist der Wert in Metern über Normalhöhennull angegeben.If the altitude is available, the value is in meters above sea level.

Verwenden von Reverse-GeocodierungUsing Reverse Geocoding

Bei der Reverse-Geocodierung werden Placemarks (Ortsmarkierungen) für einen vorhandenen Satz von Koordinaten abgerufen:Reverse geocoding is the process of getting placemarks for an existing set of coordinates:

try
{
    var lat = 47.673988;
    var lon = -122.121513;

    var placemarks = await Geocoding.GetPlacemarksAsync(lat, lon);

    var placemark = placemarks?.FirstOrDefault();
    if (placemark != null)
    {
        var geocodeAddress =
            $"AdminArea:       {placemark.AdminArea}\n" +
            $"CountryCode:     {placemark.CountryCode}\n" +
            $"CountryName:     {placemark.CountryName}\n" +
            $"FeatureName:     {placemark.FeatureName}\n" +
            $"Locality:        {placemark.Locality}\n" +
            $"PostalCode:      {placemark.PostalCode}\n" +
            $"SubAdminArea:    {placemark.SubAdminArea}\n" +
            $"SubLocality:     {placemark.SubLocality}\n" +
            $"SubThoroughfare: {placemark.SubThoroughfare}\n" +
            $"Thoroughfare:    {placemark.Thoroughfare}\n";

        Console.WriteLine(geocodeAddress);
    }
}
catch (FeatureNotSupportedException fnsEx)
{
    // Feature not supported on device
}
catch (Exception ex)
{
    // Handle exception that may have occurred in geocoding
}

Abstand zwischen zwei StandortenDistance between Two Locations

Die Klassen Location und LocationExtensions definieren Methoden, mit denen Sie den Abstand zwischen zwei Standorten berechnen können.The Location and LocationExtensions classes define methods to calculate the distance between two locations. Ein Beispiel finden Sie im Artikel Xamarin.Essentials: GeoLocation.See the article Xamarin.Essentials: Geolocation for an example.

APIAPI

Auf Channel 9 und auf YouTube finden Sie weitere Videos zu Xamarin.Find more Xamarin videos on Channel 9 and YouTube.