[Desenvolvimento] Como obter sua posição geográfica via C#

4

Olá pessoal, tudo bom?

Segue mais uma dica para quem está aprendendo a desenvolver APPs para Windows Phone. Dessa vez, o assunto é geo posicionamento.

Em C# há duas classes que são a base para resolver a situação. São elas: Geolocator e Geoposition. A classe Geolocator é responsável por provisionar acesso a sua posição geográfica atual, já classe Geoposition representa sua posição em relação a latitude e longitude.

Para testar, temos abaixo uma situação simples, onde o sujeito toca em um botão na APP e ela retorna a latitude e longitude atual.

geolocator-wp-exemplo

Abaixo o trecho de código XAML da interface

1
2
3
4
5
6
7
8
9
10
11
12
13
 
<!--ContentPanel - place additional content here-->
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
  <Button Name="btnObterLocalizacao" Content="Obter Longitude e Latitude" Click="btnObterLocalizacao_Click" />
  <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    <TextBlock Text="Latitude atual: " />
    <TextBlock Text="0,0" Name="txtLatitude" />
  </StackPanel>
  <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    <TextBlock Text="Longitude atual: " />
    <TextBlock Text="0,0" Name="txtLongitude" />
  </StackPanel>
</StackPanel>

No código C# da classe associada à página de teste, temos as seguintes demandas:

1) Adição do namespace Windows.Devices.Geolocation…

1
2
 
using Windows.Devices.Geolocation;

2) O método abaixo trata o toque no botão “Obter Longitude e Latitude”

1
2
3
4
5
6
7
8
9
10
11
12
13
 
private async void btnObterLocalizacao_Click(object sender, RoutedEventArgs e)
{
  Geolocator geo = new Geolocator();
  if (geo.LocationStatus != PositionStatus.Disabled)
  {
    Geoposition pos = await geo.GetGeopositionAsync();
    txtLatitude.Text = pos.Coordinate.Latitude.ToString();
    txtLongitude.Text = pos.Coordinate.Longitude.ToString();
  }
  else
    MessageBox.Show("Não há suporte para geoposicionamento...");
}

3) Agora você precisa adicionar as capacidades de mapa e localização ao projeto. Para isso edite o arquivo WMAppManifest.xml conforme indicado na imagem abaixo:

wp-capacidades-emulador

Fica a dica.

Grande abraço,

Eduardo Henrique Rizo (@eduardorizo)

MCP

Post Relacionado: 

Fonte: Blog do Eduardo H. Rizo

Share.

About Author

Bacharel em Ciência da Computação pela FIPP/Unoeste, Pós-Graduado em Desenvolvimento de Sistemas Web, Segurança da Informação e Avaliação do Ensino e da Aprendizagem, Professor universitário e responsável pelo setor de desenvolvimento de sistemas web da Universidade do Oeste Paulista. MCP e MCPS pela Microsoft e nas horas vagas dedica um pouco do seu tempo escrevendo posts técnicos sobre desenvolvimento de sistemas web, windows phone, gerenciamento de servidores e outros assuntos para a comunidade.

  • Rodolpho Freire

    Não tem como expandir o post um pouco e abordar geofences junto?

    • Eduardo Henrique Rizo

      Nunca fiz nada a respeito mas vou pesquisar sobre o assunto. Abraços

  • Rui Moraes

    bom artigo. vou praticar!!

    • Eduardo Henrique Rizo

      Quaisquer dúvidas, é só perguntar.