Aprendemos sobre o InputScopes em nosso último tutorial, como parte da série de desenvolvimento do Windows Phone 7.5 Mango App. Nesta lição, aprenderemos sobre como recuperar a posição global do telefone, ou seja, sua latitude e longitude e, em seguida, chamar um serviço da Web que resolverá a latitude e a longitude no formato de cidade, estado e país.
O Windows Phone 7 está equipado com uma interface GPS. Quando acoplado com a API de serviço de localização do Windows Phone 7, podemos usá-lo para determinar a latitude e a longitude, ou seja, a posição atual do telefone. Podemos então usar esses valores de latitude e longitude para determinar a cidade, estado e país. Usamos um serviço da web para resolver a cidade, o estado e o país. Um serviço da Web pode ser considerado como um método executado pela Internet. Um webservice é hospedado em um servidor e o nome do método é exposto junto com os parâmetros que serão aceitos e o tipo de dados que ele retornará. Podemos chamar tal serviço da web pela internet, recuperar resultados e fazer algo significativo com os dados obtidos.
Crie um novo projeto do Windows Phone 7 com um nome exclusivo, como "GPSDemo". Copie e cole o seguinte código xaml na grade do painel de conteúdo.
HorizontalAlignment =”Esquerda”
Margem =”12,23,0,0 ″
Nome = "textBlock1"
Texto =”
VerticalAlignment =”Top”
Largura =”423” />
Altura = "72"
HorizontalAlignment =”Esquerda”
Margem =”275,59,0,0 ″
Nome = "button1"
VerticalAlignment =”Top”
Largura = "160"
Clique = "button1_Click" />
Com o código acima, criamos um bloco de texto em branco e um botão com a propriedade content alterada para Find Me. Navegue até o evento button1_Click. Antes de escrevermos o código para isso, precisamos adicionar uma referência a. Clique com o botão direito do mouse no título do projeto no Solution Explorer e selecione Add Reference no menu. Na guia ".Net", role para baixo e selecione o nome do componente "System.Device". Clique em OK para adicionar o arquivo dll ao seu projeto. Em seguida, digite a seguinte linha de código após a última instrução em uso em MainPage.xaml.cs.
using System.Device.Location;
Em seguida, criamos uma referência para o serviço da web. Para fazer isso, clique com o botão direito do mouse no título do projeto e selecione Add Service Reference no menu. Digite o seguinte URL "https://msrmaps.com/TerraService2.asmx" na caixa de texto Endereço e clique em "Ir". Depois que o serviço da Web for identificado pela Internet, você verá uma lista de operações disponíveis nesse serviço da web. Simples mude o namespace de ServiceReference1 para myTerraService e clique no botão OK. Visual Studio cria a classe de proxy que você usará para trabalhar com o serviço da web. Uma vez feito isso, você está pronto para trabalhar com a interface GPS do telefone. Copie e cole as seguintes linhas de código no evento button1_Click.
GeoCoordinateWatcher myWatcher = novo GeoCoordinateWatcher ();
var myPosition = myWatcher.Position;
latitude dupla = 18,916;
longitude dupla = 72,9;
if (! myPosition.Location.IsUnknown)
{
latitude = myPosition.Location.Latitude;
longitude = myPosition.Location.Longitude;
}
myTerraService.TerraServiceSoapClient client = novo myTerraService.TerraServiceSoapClient ();
client.ConvertLonLatPtToNearestPlaceCompleted + = new EventHandler
client.ConvertLonLatPtToNearestPlaceAsync (new myTerraService.LonLatPt {Lat = latitude, Lon = longitude});
Copie e cole o seguinte método após as últimas chaves do método button1_Click
void client_ConvertLonLatPtToNearestPlaceCompleted (remetente do objeto, myTerraService.ConvertLonLatPtToNearestPlaceCompletedEventArgs e)
{
textBlock1.Text = e.Result;
}
Agora vamos dar uma olhada no que exatamente o código faz. Primeiro, obtemos os valores para a latitude e longitude criando um objeto da classe FeoCoordinateWatcher chamado myWatcher e depois acessamos a latitude e a longitude simplesmente acessando a propriedade latitude e longitude do myPosition.Location. Em seguida, criamos uma chamada assíncrona para o serviço da Web, passando a latitude e a longitude. Finalmente, simplesmente exibimos o resultado do serviço web no bloco de texto. Uma chamada assíncrona é feita para que o aplicativo permaneça responsivo mesmo quando o resultado do serviço da Web está sendo recebido.
Isso conclui nossa série de desenvolvimento do Windows Phone 7.5 Mango App.
Links para todas as partes desta série de tutoriais:
- Aprenda a desenvolver o Windows Phone 7.5 Mango Applications: Parte 1
- Desenvolvendo o Windows Phone 7.5 Mango Applications: Parte 2 (aplicativo HelloWorld)
- Desenvolvendo Aplicativos para Windows Phone 7.5: Parte 3; Variáveis, tipos de dados e atribuição de valores
- Desenvolvendo o Windows 7.5 Mango Apps, Parte 4: if statement
- Desenvolvendo o Windows 7.5 Mango Apps, Parte 5: Operadores, expressões, declarações
- Desenvolvendo o Windows 7.5 Mango Apps, Parte 6: Switch Statement
- Desenvolvendo o Windows Phone Mango Apps, Parte 7: para iterações
- Usando métodos simples de ajuda ao desenvolver aplicativos para o Windows Phone 7.5 Mango: parte 8
- Trabalhando com seqüências de caracteres: Windows Phone 7.5 Desenvolvimento de aplicativos de mango - Parte 9
- Trabalhando com o DateTime: Windows Phone 7.5 - Desenvolvimento de Aplicativos para Mango - Parte 10
- Entendendo e Criando Classes: Windows Phone 7.5 - Desenvolvimento de Aplicativos de Mango - Parte 11
- Trabalhando com classes: Windows Phone 7.5 Desenvolvimento de aplicativos de mango - Parte 12
- Noções básicas sobre namespaces: Windows Phone 7.5 Desenvolvimento de aplicativos de mango - Parte 13
- Coleção de Objetos: Windows Phone Apps Turorial - Parte 14
- Entendendo o XAML: Desenvolvimento de Aplicativos para Windows Phone Turorial - Parte 15
- Controles de layout do Silverlight: Tutorial de desenvolvimento de aplicativos do Windows Phone - Parte 16
- Controles de eventos e entradas XAML: Windows Phone Apps Development Tutorial - Parte 17
- Trabalhando com o controle de imagem: Tutorial de desenvolvimento de aplicativos do Windows Phone - Parte 18
- Trabalhando com estilos e recursos: Tutorial de desenvolvimento de aplicativos do Windows Phone - Parte 19
- Aplicar recurso de estilo e tema aos controles: Tutorial de desenvolvimento de aplicativos do Windows Phone - Parte 20
- Navegando entre páginas XAML: Windows Phone Apps Development Tutorial - Parte 21
- Trabalhando com a barra de aplicativos: Windows Phone Apps Development Tutorial - Parte 22
- Usando o Canvas como Diálogo: Tutorial de Desenvolvimento de Aplicativos do Windows Phone - Parte 23
- Adicionando Diferentes Escopos de Entrada: Tutorial de Desenvolvimento de Aplicativos do Windows Phone - Parte 24
- GPS, Location API e Calling Web Services: Tutorial de Desenvolvimento de Aplicativos para Windows Phone - 25.