Sdílet prostřednictvím


Geokódování

Browse sample. Procházení ukázky

Tento článek popisuje, jak můžete použít rozhraní .NET Multi-Platform App UI (.NET MAUI). IGeocoding Tato rozhraní poskytují rozhraní API pro geografické kódování značky místa pro souřadnice pozice a zpětné souřadnice geografického kódu na značku místa.

Výchozí implementace IGeocoding rozhraní je k dispozici prostřednictvím Geocoding.Default vlastnosti. Rozhraní IGeocoding i Geocoding třída jsou obsaženy v Microsoft.Maui.Devices.Sensors oboru názvů.

Začínáme

Pro přístup k funkcím geokódování se vyžaduje následující nastavení specifické pro platformu.

Není vyžadováno žádné nastavení.

Použití geokódování

Následující příklad ukazuje, jak získat souřadnice umístění pro adresu:

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}");

Výška není vždy dostupná. Pokud není k dispozici, Altitude vlastnost může být nullnebo hodnota může být 0. Pokud je k dispozici výška, hodnota je v metrech nad hladinou moře.

Zpětné geokódování

Zpětné geokódování je proces získávání značek pro existující sadu souřadnic. Následující příklad ukazuje získání značek místa:

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 "";
}

Získání vzdálenosti mezi dvěma umístěními

LocationExtensions Třídy Location definují metody pro výpočet vzdálenosti mezi dvěma umístěními. Příklad získání vzdálenosti mezi dvěma umístěními najdete v tématu Vzdálenost mezi dvěma umístěními.