Compartilhar via


Iniciando o aplicativo Mapas

A maneira mais simples de trabalhar com mapas no Xamarin.Android é aproveitar o aplicativo de mapas internos mostrado abaixo:

Captura de tela de exemplo do aplicativo Interno do Google Mapas

Quando você usa o aplicativo mapas, o mapa não fará parte do aplicativo. Em vez disso, seu aplicativo iniciará o aplicativo de mapas e carregará o mapa externamente. A próxima seção examina como usar o Xamarin.Android para iniciar mapas como o acima.

Criando a intenção

Trabalhar com o aplicativo mapas é tão fácil quanto criar uma Intenção com um URI apropriado, definir a ação como ActionView e chamar o método StartActivity. Por exemplo, o código a seguir inicia o aplicativo de mapas centralizado em uma determinada latitude e longitude:

var geoUri = Android.Net.Uri.Parse ("geo:42.374260,-71.120824");
var mapIntent = new Intent (Intent.ActionView, geoUri);
StartActivity (mapIntent);

Esse código é tudo o que é necessário para iniciar o mapa mostrado na captura de tela anterior. Além de especificar latitude e longitude, o esquema de URI para mapas dá suporte a várias outras opções.

Esquema de URI geográfico

O código acima usou o esquema geográfico para criar um URI. Esse esquema de URI dá suporte a vários formatos, conforme listado abaixo:

  • geo:latitude,longitude – Abre o aplicativo de mapas centralizado em um lat/lon.

  • geo:latitude,longitude?z=zoom – Abre o aplicativo de mapas centralizado em um lat/lon e ampliado para o nível especificado. O nível de zoom pode variar de 1 a 23: 1 exibe toda a Terra e 23 é o nível de zoom mais próximo.

  • geo:0,0?q=my+street+address – Abre o aplicativo de mapas para o local de um endereço de rua.

  • geo:0,0?q=business+near+city – Abre o aplicativo mapas e exibe os resultados da pesquisa anotados.

As versões do URI que usam uma consulta (ou seja, o endereço de rua ou os termos de pesquisa) usam o serviço de geocodificador do Google para recuperar o local exibido no mapa. Por exemplo, o URI geo:0,0?q=coop+Cambridge resulta no mapa mostrado abaixo:

Captura de tela de exemplo mostrando o Google Mapas com um termo de pesquisa

Para obter mais informações sobre esquemas de URI geográfico, consulte Mostrar um local em um mapa.

Modo de Exibição de Rua

Além do esquema geográfico, o Android também dá suporte ao carregamento de exibições de rua de uma Intenção. Um exemplo do aplicativo street view iniciado do Xamarin.Android é mostrado abaixo:

Captura de tela de exemplo de uma exibição de rua

Para iniciar um modo de exibição de rua, basta usar o google.streetview esquema de URI, conforme demonstrado no seguinte código:

var streetViewUri = Android.Net.Uri.Parse (
       "google.streetview:cbll=42.374260,-71.120824&cbp=1,90,,0,1.0&mz=20");  
var streetViewIntent = new Intent (Intent.ActionView, streetViewUri);  
StartActivity (streetViewIntent);

O esquema de URI google.streetview usado acima assume a seguinte forma:

google.streetview:cbll=lat,lng&cbp=1,yaw,,pitch,zoom&mz=mapZoom

Como você pode ver, há vários parâmetros com suporte, conforme listado abaixo:

  • lat – A latitude do local a ser mostrado no modo de exibição de rua.

  • lng – A longitude do local a ser mostrado no modo de exibição de rua.

  • pitch – Ângulo do panorama de exibição de rua, medido do centro em graus em que 90 graus é reto para baixo e -90 graus é reto para cima.

  • yaw – Centro de exibição do panorama de exibição de rua, medido no sentido horário em graus do Norte.

  • zoom – Multiplicador de zoom para o panorama do street view, em que 1,0 = zoom normal, 2,0 = zoom de 2x, 3,0 = zoom de 4x etc.

  • mz – O nível de zoom do mapa que será usado ao acessar o aplicativo de mapas do modo de exibição de rua.

Trabalhar com o aplicativo de mapas interno ou o modo de exibição de rua é uma maneira fácil de adicionar rapidamente suporte de mapeamento. No entanto, a API de Mapas do Android oferece um controle mais fino sobre a experiência de mapeamento.