Xamarin.Essentials:Geocoding
Kelas Geocoding menyediakan API untuk mengodekan geocode placemark ke koordinat posisional dan koordinat geocode terbalik ke placemark.
Memulai
Untuk mulai menggunakan API ini, baca panduan memulai untuk Xamarin.Essentials memastikan pustaka diinstal dan disiapkan dengan benar di proyek Anda.
Untuk mengakses fungsionalitas Geocoding , diperlukan penyiapan spesifik platform berikut.
Menggunakan Geocoding
Tambahkan referensi ke Xamarin.Essentials di kelas Anda:
using Xamarin.Essentials;
Mendapatkan koordinat lokasi untuk alamat:
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
}
Ketinggian tidak selalu tersedia. Jika tidak tersedia, Altitude
properti mungkin null
atau nilainya mungkin nol. Jika ketinggian tersedia, nilainya berada dalam meter di atas permukaan laut.
Menggunakan Reverse Geocoding
Geocoding terbalik adalah proses mendapatkan marka tempat untuk sekumpulan koordinat yang ada:
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
}
Jarak antara Dua Lokasi
Kelas Location
dan LocationExtensions
menentukan metode untuk menghitung jarak antara dua lokasi. Lihat artikel Xamarin.Essentials: Geolokasi untuk contoh.