Bagikan melalui


Geocoding

Browse sample. Telusuri sampel

Artikel ini menjelaskan cara menggunakan antarmuka .NET Multi-platform App UI (.NET MAUI). IGeocoding Antarmuka ini menyediakan API untuk mengodekan geocode placemark ke koordinat posisional dan koordinat geocode terbalik ke marka tempat.

Implementasi IGeocoding default antarmuka tersedia melalui Geocoding.Default properti . IGeocoding Antarmuka dan Geocoding kelas terkandung dalam Microsoft.Maui.Devices.Sensors namespace layanan.

Mulai

Untuk mengakses fungsionalitas Geocoding , diperlukan penyiapan khusus platform berikut.

Tidak diperlukan penyiapan lain.

Menggunakan geocoding

Contoh berikut menunjukkan cara mendapatkan koordinat lokasi untuk alamat:

string address = "Microsoft Building 25 Redmond WA USA";
IEnumerable<Location> locations = await Geocoding.Default.GetLocationsAsync(address);

Location location = locations?.FirstOrDefault();

if (location != null)
    Console.WriteLine($"Latitude: {location.Latitude}, Longitude: {location.Longitude}, Altitude: {location.Altitude}");

Ketinggian tidak selalu tersedia. Jika tidak tersedia, Altitude properti mungkin null, atau nilainya mungkin 0. Jika ketinggian tersedia, nilainya berada dalam meter di atas permukaan laut.

Geocoding terbalik

Geocoding terbalik adalah proses mendapatkan marka tempat untuk sekumpulan koordinat yang ada. Contoh berikut menunjukkan mendapatkan marka tempat:

private async Task<string> GetGeocodeReverseData(double latitude = 47.673988, double longitude = -122.121513)
{
    IEnumerable<Placemark> placemarks = await Geocoding.Default.GetPlacemarksAsync(latitude, longitude);

    Placemark placemark = placemarks?.FirstOrDefault();

    if (placemark != null)
    {
        return
            $"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";

    }

    return "";
}

Mendapatkan jarak antara dua lokasi

Kelas Location dan LocationExtensions menentukan metode untuk menghitung jarak antara dua lokasi. Untuk contoh mendapatkan jarak antara dua lokasi, lihat Jarak antara dua lokasi.