Bagikan melalui


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.

Tidak diperlukan penyiapan tambahan.

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.

API

Temukan video Xamarin lainnya di Channel 9 dan YouTube.