Geocodierung
In diesem Artikel wird beschrieben, wie Sie die .NET Multi-Platform App UI (.NET MAUI) IGeocoding-Schnittstelle verwenden können. Diese Schnittstelle stellt APIs bereit, um sowohl eine Ortsmarkierung mit einer Positionskoordinate zu geocodieren als auch Geocode-Koordinaten in eine Ortsmarkierung umzuwandeln.
Die Standardimplementierung der IGeocoding
-Schnittstelle ist über die Geocoding.Default-Eigenschaft verfügbar. Die IGeocoding
-Schnittstelle sowie die Geocoding
-Klasse sind im Microsoft.Maui.Devices.Sensors
-Namespace enthalten.
Erste Schritte
Für den Zugriff auf die Geocoding-Funktionalität ist die folgende plattformspezifische Einrichtung erforderlich.
Es ist kein Setup erforderlich.
Verwenden der Geocodierung
Im folgenden Beispiel wird das Abrufen der Positionskoordinaten für eine Adresse veranschaulicht.
string address = "Microsoft Building 25 Redmond WA USA";
IEnumerable<Location> locations = await Geocoding.Default.GetLocationsAsync(address);
Location location = locations?.FirstOrDefault();
if (location != null)
Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");
Die Höhe ist nicht immer verfügbar. Wenn sie nicht verfügbar ist, ist die Eigenschaft Altitude möglicherweise null
, oder der Wert ist 0
. Ist die Höhe verfügbar, ist der Wert in Metern über Normalhöhennull angegeben.
Reverse-Geocodierung
Bei der Reverse-Geocodierung werden Placemarks (Ortsmarkierungen) für einen vorhandenen Satz von Koordinaten abgerufen. Das folgende Beispiel veranschaulicht das Abrufen von Ortsmarkierungen:
private async Task<string> GetGeocodeReverseData(double latitude = 47.673988, double longitude = -122.121513)
{
IEnumerable<Placemark> placemarks = await Geocoding.Default.GetPlacemarksAsync(latitude, longitude);
Placemark placemark = placemarks?.FirstOrDefault();
if (placemark != null)
{
return
$"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";
}
return "";
}
Abrufen des Abstands zwischen zwei Standorten
Die Klassen Location und LocationExtensions definieren Methoden, mit denen Sie den Abstand zwischen zwei Standorten berechnen können. Ein Beispiel für das Abrufen des Abstands zwischen zwei Standorten finden Sie unter Abstand zwischen zwei Standorten.