Aracılığıyla paylaş


Xamarin.Essentials: Coğrafi kodlama

Geocoding sınıfı, bir yer işaretini konumsal koordinatlara coğrafi olarak kodlamak için API'ler ve yer işaretine ters coğrafi kod koordinatları sağlar.

Kullanmaya başlayın

Bu API'yi kullanmaya başlamak için kitaplığın projelerinizde düzgün yüklendiğinden ve ayarlandığından emin olmak için Xamarin.Essentials kullanmaya başlama kılavuzunu okuyun.

Coğrafi kodlama işlevine erişmek için aşağıdaki platforma özgü kurulum gereklidir.

Ek kurulum gerekmez.

Coğrafi Kodlamayı Kullanma

Sınıfınızda için Xamarin.Essentials bir başvuru ekleyin:

using Xamarin.Essentials;

Adres için konum koordinatları alınıyor:

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
}

Yükseklik her zaman kullanılamaz. Bu özellik kullanılamıyorsa, Altitude özelliği veya null değeri sıfır olabilir. Rakım mevcutsa, değer deniz seviyesinden metrelerce yüksektedir.

Ters Coğrafi Kodlama kullanma

Ters coğrafi kodlama, mevcut koordinat kümesi için yer işaretleri 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

Location ve LocationExtensions sınıfları, iki konum arasındaki mesafeyi hesaplamak için yöntemler tanımlar. Bir örnek için şu makaleye Xamarin.Essentialsbakın: Coğrafi konum.

API

Channel 9 ve YouTube'da daha fazla Xamarin videosu bulun.