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.
...
...
A imagem abaixo lhe dá uma ideia de como o layout está ficando.
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.
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 e)
{
try
{
//Ajustando o zoom...
mapa.ZoomLevel = e.NewValue;
}
catch { }
}
Ao executar a aplicação teremos o seguinte resultado:
Fica a dica!
Grande abraço,
Eduardo Henrique Rizo (@eduardorizo)
Posts Relacionados:
Fonte: Blog do Eduardo H. Rizo
Comentários