Xamarin.Essentials: Geografické kódování
Třída geografického kódování poskytuje rozhraní API pro geografické kódování Placemark do pozičních souřadnic a zpětné souřadnice geografického kódu na Placemark.
Začínáme
Pokud chcete začít používat toto rozhraní API, přečtěte si příručku Začínáme pro, abyste měli jistotu, že je knihovna správně nainstalovaná a nastavená ve vašich projektech.
Pro přístup k funkci geografického kódování se vyžaduje následující nastavení pro konkrétní platformu.
Používání geografického kódování
Do třídy přidejte odkaz Xamarin.Essentials :
using Xamarin.Essentials;
Získávání souřadnic umístění pro 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
}
Nadmořská výška není vždycky dostupná. Pokud není k dispozici, Altitude vlastnost může být null nebo hodnota může být nulová. Pokud je výška k dispozici, hodnota je v metrech přesahujících úroveň moře.
Použití reverzního geografického kódování
Zpětným kódováním je proces získání placemarks pro existující sadu souřadnic:
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
}
Vzdálenost mezi dvěma umístěními
LocationTřídy a LocationExtensions definují metody pro výpočet vzdálenosti mezi dvěma umístěními. Příklad najdete v článku Xamarin.Essentials: Geolocation .
rozhraní API
- Xamarin. Essentials /Geocoding "data-LINKTYPE =" external ">zdrojového kódu pro geografické kódování
- Dokumentace k geografickému kódování rozhraní API