Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Klasa Geokoding udostępnia interfejsy API do geokodowania znaku zastępczego do współrzędnych pozycyjnych i współrzędnych odwrotnego kodu geograficznego do znaku zastępczego.
Rozpocznij
Aby rozpocząć korzystanie z tego interfejsu API, przeczytaj przewodnik wprowadzający , Xamarin.Essentials aby upewnić się, że biblioteka jest prawidłowo zainstalowana i skonfigurowana w projektach.
Aby uzyskać dostęp do funkcji geokodowania , wymagana jest następująca konfiguracja specyficzna dla platformy.
Nie jest wymagana żadna dodatkowa konfiguracja.
Korzystanie z geokodowania
Dodaj odwołanie do Xamarin.Essentials klasy:
using Xamarin.Essentials;
Pobieranie współrzędnych lokalizacji dla adresu:
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
}
Wysokość nie zawsze jest dostępna. Jeśli jest niedostępna, Altitude właściwość może być null lub wartość może być równa zero. Jeśli wysokość jest dostępna, wartość jest wyrażona w metrach powyżej poziomu morza.
Używanie odwrotnego geokodowania
Odwrotne geokodowanie to proces pobierania oznaczeń zastępczych dla istniejącego zestawu współrzędnych:
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
}
Odległość między dwiema lokalizacjami
Klasy Location i LocationExtensions definiują metody obliczania odległości między dwiema lokalizacjami. Zobacz artykuł Xamarin.Essentials: Geolokalizacja , aby zapoznać się z przykładem.
interfejs API
Powiązany film wideo
Więcej filmów na platformie Xamarin można znaleźć w witrynach Channel 9 i YouTube.