Xamarin.EssentialsMapa:
A classe Maps permite que um aplicativo abra o aplicativo de mapas instalado em um local ou marcador específico.
Introdução
Para começar a usar essa API, leia o guia de introdução para Xamarin.Essentials garantir que a biblioteca esteja instalada e configurada corretamente em seus projetos.
Usando o mapa
Adicione uma referência a Xamarin.Essentials em sua classe:
using Xamarin.Essentials;
A funcionalidade Map funciona chamando o método OpenAsync
com Location
ou Placemark
para abrir com 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
}
}
}
Ao abrir com um Placemark
, as seguintes informações são necessárias:
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 Extensão
Se você já tiver uma referência a uma Location
ou Placemark
, use o método de extensão interno OpenMapAsync
com 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 direções
Se você chamar OpenMapAsync
sem MapLaunchOptions
, o mapa será iniciado no local especificado. Se quiser, tenha uma rota de navegação calculada a partir da posição atual do dispositivo. Isso é feito definindo o NavigationMode
nas 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);
}
}
Diferenças entre plataformas
Particularidades de implementação da plataforma
O Android usa o esquema de Uri geo:
para iniciar o aplicativo de mapas no dispositivo. Isso pode levar o usuário a optar por um aplicativo existente que suporte esse esquema de Uri. Xamarin.Essentials é testado com o Google Maps, que suporta este esquema.
API
Vídeo relacionados
Encontre mais vídeos sobre o Xamarin no Channel 9 e no YouTube.