Curso Windows Phone – Como visualizar sua atual posição geográfica em um mapa

Olá pessoal, tudo bom?

Nesse post demonstro como podemos desenvolver uma APP para Windows Phone capaz de exibir sua posição geográfica atual em um mapa e ainda permitir que o usuário tenha à disposição um controle para aumentar ou diminuir o zoom de visualização.

Bem, tendo criado uma aplicação Windows Phone no Visual Studio, adicione uma nova página e nela faça referência ao XML namespace Microsoft.Phone.Maps.Controls.


xmlns:maps="clr-namespace:Microsoft.Phone.Maps.Controls;assembly=Microsoft.Phone.Maps"

Na sequencia, adicione um elemento Map e um Slider para composição da interface de teste.

...
<!--ContentPanel - place additional content here-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">

<maps:Map x:Name="mapa"
   ZoomLevel="15" CartographicMode="Aerial" ColorMode="Light"
   HorizontalAlignment="Left" Margin="10,10,0,0"
   VerticalAlignment="Top" Height="587" Width="436"/>

<Slider x:Name="zoom" HorizontalAlignment="Left"
   Margin="392,0,0,0" VerticalAlignment="Top" Width="76" Maximum="19"
   Minimum="1" Orientation="Vertical" Grid.Row="1" Height="322"
   ValueChanged="zoom_ValueChanged" Value="15"/>
</Grid>
...

A imagem abaixo lhe dá uma ideia de como o layout está ficando.

layout-mapa

Ajustando as Capabilities da APP

Para que seja possível usar os recursos de mapa e geolocalização é necessário que você abra o arquivo WMAppManifest.xml que fica junto à pasta Properties da aplicação e marque as capabilities ID_CAP_LOCATION e ID_CAP_MAP.

wp-capacidades-emulador

Codificação em C#

Agora que já cuidamos do layout em XAML e das Capabilities da APP verifiquemos a implementação do código C#.

...

//Construtor
public Mapa()
{
  InitializeComponent();
  //Após o carregamento da página, o método para
  //leitura da posição geográfica atual e exibição
  //do mapa é acionado.
  this.Loaded += Mapa_Loaded;
}

private async void Mapa_Loaded(object sender, RoutedEventArgs e)
{
  //Objeto que será usado para obter a posição geográfica atual
  Geolocator geo = new Geolocator();
  if (geo.LocationStatus != PositionStatus.Disabled)
  {
    //Obtendo a posição geográfica
    Geoposition pos = await geo.GetGeopositionAsync();
    //Centralizando o mapa na coordenada geográfica obtida
    mapa.Center = pos.Coordinate.ToGeoCoordinate();
  }
}

//Método que trata o aumento ou diminuição do zoom
private void zoom_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
  try
  {
    //Ajustando o zoom...
    mapa.ZoomLevel = e.NewValue;
  }
  catch { }
}

Ao executar a aplicação teremos o seguinte resultado:

app-mapa

Fica a dica!

Grande abraço,

Eduardo Henrique Rizo

MCP

Posts Relacionados: 

Anúncios

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , , , , , , , , , , ,
Publicado em Windows Phone
Um comentário em “Curso Windows Phone – Como visualizar sua atual posição geográfica em um mapa
  1. […] Como visualizar sua atual posição geográfica em um mapa […]

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br

%d blogueiros gostam disto: