Xamarin.Essentials: Coğrafi olarakcoding
Geocoding sınıfı, konumsal koordinatlara bir yer işareti coğrafi kodlamak için API'ler ve bir yer işaretine ters coğrafi kod koordinatları sağlar.
başlarken
Bu API'yi kullanmaya başlamak için kitaplığın projelerinize düzgün bir şekilde yük olduğundan ve ayar olduğundan emin olmak için başlangıç kılavuzunu okuyun.
Coğrafi kodlama işlevine erişmek için aşağıdaki platforma özgü kurulum gereklidir.
Coğrafi OlarakCoding Kullanma
sınıfınıza Xamarin.Essentials bir başvuru ekleyin:
using Xamarin.Essentials;
Bir adres için konum koordinatlarını alma:
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
}
Rakım her zaman kullanılabilir değildir. Bu özellik Altitude kullanılamıyorsa, özellik veya değer sıfır null olabilir. Rakım varsa, değer deniz seviyesinin metre üzerindedir.
Ters CoğrafiCoding Kullanma
Ters coğraficoding, mevcut koordinat kümesi için yer işaretlerini alma işlemidir:
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
}
İki Konum Arasındaki Uzaklık
ve LocationLocationExtensions sınıfları, iki konum arasındaki mesafeyi hesaplamak için yöntemleri tanımlar. Örnek için Xamarin.Essentials: Geolocation makaleye bakın.
API
- Xamarin.Essentials /Geocoding" data-linktype="external">kaynak kodu
- Coğrafi olarakcoding API belgeleri
İlgili Video
Channel 9 ve YouTube'da daha fazla Xamarin videosu bulun.