Udostępnij za pośrednictwem


Xamarin.Essentials:Mapa

Klasa Map umożliwia aplikacji otwieranie zainstalowanej aplikacji mapy w określonej lokalizacji lub miejscu.

Rozpocznij

Aby rozpocząć korzystanie z tego interfejsu API, przeczytaj przewodnik wprowadzający , Xamarin.Essentials aby upewnić się, że biblioteka jest prawidłowo zainstalowana i skonfigurowana w projektach.

Korzystanie z mapy

Dodaj odwołanie do Xamarin.Essentials klasy:

using Xamarin.Essentials;

Funkcja Mapowania działa przez wywołanie OpenAsync metody za pomocą metody Location lub Placemark w celu otwarcia za pomocą opcjonalnego MapLaunchOptionselementu .

public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var location = new Location(47.645160, -122.1306032);
        var options =  new MapLaunchOptions { Name = "Microsoft Building 25" };

        try
        {
            await Map.OpenAsync(location, options);
        }
        catch (Exception ex)
        {
            // No map application available to open
        }
    }
}

Podczas otwierania za pomocą elementu Placemarkwymagane są następujące informacje:

  • CountryName
  • AdminArea
  • Thoroughfare
  • Locality
public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var placemark = new Placemark
            {
                CountryName = "United States",
                AdminArea = "WA",
                Thoroughfare = "Microsoft Building 25",
                Locality = "Redmond"
            };
        var options =  new MapLaunchOptions { Name = "Microsoft Building 25" };

        try
        {
            await Map.OpenAsync(placemark, options);
        }
        catch (Exception ex)
        {
            // No map application available to open or placemark can not be located
        }
    }
}

Metody rozszerzania

Jeśli masz już odwołanie do elementu Location lub Placemark, możesz użyć wbudowanej metody OpenMapAsync rozszerzenia z opcjonalnym elementem MapLaunchOptions:

public class MapTest
{
    public async Task OpenPlacemarkOnMap(Placemark placemark)
    {
        try
        {
            await placemark.OpenMapAsync();
        }
        catch (Exception ex)
        {
            // No map application available to open
        }
    }
}

Tryb kierunkowy

Jeśli wywołasz połączenie OpenMapAsync bez żadnego MapLaunchOptionselementu , mapa zostanie uruchomiona w określonej lokalizacji. Opcjonalnie możesz mieć trasę nawigacji obliczoną na podstawie bieżącej pozycji urządzenia. Można to zrobić, ustawiając element NavigationMode na :MapLaunchOptions

public class MapTest
{
    public async Task NavigateToBuilding25()
    {
        var location = new Location(47.645160, -122.1306032);
        var options =  new MapLaunchOptions { NavigationMode = NavigationMode.Driving };

        await Map.OpenAsync(location, options);
    }
}

Różnice między platformami

  • NavigationMode obsługuje cykle jazdy, jazdy i chodzenia.

Specyfika implementacji platformy

System Android używa schematu identyfikatora geo: URI do uruchamiania aplikacji map na urządzeniu. Może to spowodować wyświetlenie monitu użytkownika o wybranie z istniejącej aplikacji obsługującej ten schemat identyfikatora URI. Xamarin.Essentials program jest testowany za pomocą usługi Google Maps, która obsługuje ten schemat.

interfejs API

Więcej filmów na platformie Xamarin można znaleźć w witrynach Channel 9 i YouTube.