Xamarin.Essentials: Asignación

La clase Map permite que una aplicación abra la aplicación de mapas instalada en una ubicación o marca de posición específica.

Primeros pasos

Para empezar a usar esta API, lea la guía de introducción para Xamarin.Essentials con el fin de asegurarse de que la biblioteca está correctamente instalada y configurada en los proyectos.

Uso de Map

Agregue una referencia a Xamarin.Essentials en la clase:

using Xamarin.Essentials;

Map funciona mediante una llamada al método OpenAsync con Location o Placemark abierto con MapLaunchOptions opcional.

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

Cuando se abre con Placemark, se requiere la siguiente información:

  • 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
        }
    }
}

Métodos de extensión.

Si ya tiene una referencia a Location o a Placemark, puede usar el método de extensión integrado OpenMapAsync con MapLaunchOptions opcional:

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

Modo de instrucciones

Si llama a OpenMapAsync sin MapLaunchOptions, el mapa se iniciará en la ubicación especificada. Si quiere, puede hacer que se calcule una ruta de navegación desde la posición actual del dispositivo. Para ello, establezca NavigationMode en 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);
    }
}

Diferencias entre plataformas

  • NavigationMode admite Bicycling (Bicicleta), Driving (Automóvil) y Walking (A pie).

Detalles de implementación de la plataforma

Android usa el esquema geo: de URI para iniciar la aplicación de mapas en el dispositivo. Esto podría pedirle al usuario que seleccione de una aplicación existente que admite este esquema de URI. Xamarin.Essentials se ha probado con Google Maps, que admite este esquema.

API

Encuentre más vídeos de Xamarin en Channel 9 y YouTube.