Coğrafi kodlama
Bu makalede .NET Çok Platformlu Uygulama Kullanıcı Arabirimi (.NET MAUI) IGeocoding arabirimini nasıl kullanabileceğiniz açıklanmaktadır. Bu arabirimler, bir yer işaretini konumsal koordinatlara coğrafi olarak kodlamak için API'ler ve konum işaretine ters coğrafi kod koordinatları sağlar.
Arabirimin IGeocoding
varsayılan uygulaması özelliği aracılığıyla Geocoding.Default kullanılabilir. IGeocoding
Hem arabirim hem Geocoding
de sınıf ad alanında Microsoft.Maui.Devices.Sensors
yer alır.
Başlarken
Coğrafi kodlama işlevine erişmek için aşağıdaki platforma özgü kurulum gereklidir.
Kurulum gerekmez.
Coğrafi kodlamayı kullanma
Aşağıdaki örnekte, bir adres için konum koordinatlarının nasıl alınıyor olduğu gösterilmektedir:
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}");
Yükseklik her zaman kullanılamaz. Kullanılamıyorsa, Altitude özelliği olabilir null
veya değeri olabilir 0
. Rakım mevcutsa, değer deniz seviyesinden metrelerce yüksektedir.
Ters coğrafi kodlama
Ters coğrafi kodlama, mevcut koordinat kümesi için yer işaretleri alma işlemidir. Aşağıdaki örnekte yer işaretlerini alma gösterilmektedir:
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 "";
}
İki konum arasındaki mesafeyi alma
Location ve LocationExtensions sınıfları, iki konum arasındaki mesafeyi hesaplamak için yöntemler tanımlar. İki konum arasındaki mesafeyi alma örneği için bkz . İki konum arasındaki uzaklık.