Vi lærte om InputScopes i vår siste opplæring, som en del av Windows Phone 7.5 Mango App-utviklingsserien. I denne leksjonen skal vi lære om hvordan man henter telefonens globale posisjon, det vil si breddegrad og lengdegrad, og deretter ringe en webtjeneste som vil løse breddegraden og lengden i by, stat og landformat.
Windows Phone 7 er utstyrt med et GPS-grensesnitt. Når kombinert med Location Service API på Windows Phone 7, kan vi bruke den til å bestemme breddegrad og lengdegrad, dvs. den nåværende posisjonen til telefonen. Vi kan da bruke disse bredde- og lengdeverdiene for å bestemme byen, staten og landet. Vi bruker en webtjeneste for å løse byen, staten og landet. En webtjeneste kan betraktes som en metode som går over internett. En webservice er vert på en server og dens metode navn blir eksponert sammen med parametrene som den vil akseptere og hvilken type data den vil returnere tilbake. Vi kan ringe en slik webtjeneste over internett, hente resultater og gjøre noe meningsfylt med dataene som er innhentet.
Opprett et nytt Windows Phone 7-prosjekt med et unikt navn som "GPSDemo". Kopier og lim inn følgende xaml-kode i innholdspanelet.
HorizontalAlignment =”left”
Margin =”12,23,0,0
Name =”textBlock1
Text =””
VerticalAlignment =”Top”
Bredde = "423" />
Height =”72
HorizontalAlignment =”left”
Margin =”275,59,0,0
Name =”Button1
VerticalAlignment =”Top”
Width =”160
Klikk = "button1_Click" />
Med koden gitt ovenfor lager vi en tom tekstblokk og en knapp med innholdsegenskapen endret til Finn meg. Naviger til knappen1_Klikk hendelsen. Før vi skriver koden for dette, må vi legge til en referanse til. Høyreklikk tittelen på prosjektet i løsningsoppdageren og velg Legg til referanse fra menyen. Under ". Net" -kategorien, bla ned og velg komponentnavnet 'System.Device'. Klikk OK for å legge til DLL-filen i prosjektet. Neste skriv inn følgende linje kode etter den siste brukeroppstillingen i MainPage.xaml.cs.
bruker System.Device.Location;
Deretter oppretter vi en referanse til webtjenesten. For å gjøre dette, høyreklikk prosjekttittelen og velg Legg til servicehenvisning fra menyen. Skriv inn følgende URL 'https://msrmaps.com/TerraService2.asmx' i adressefeltet, og klikk 'Go'. Når webtjenesten er identifisert via Internett, vil du se en liste over operasjoner som er tilgjengelige under den aktuelle webtjenesten. Enkelt endre namespace fra ServiceReference1 til myTerraService og klikk på OK-knappen. Visual Studio bygger proxy-klassen du vil bruke til å jobbe med webtjenesten. Når dette er gjort, er du klar til å jobbe med GPS-grensesnittet på telefonen. Kopier og lim inn følgende linjer med kode i knappen1_Klikk hendelsen.
GeoCoordinateWatcher myWatcher = ny GeoCoordinateWatcher ();
var myPosition = myWatcher.Position;
dobbel breddegrad = 18.916;
dobbelt lengdegrad = 72,9;
hvis (! myPosition.Location.IsUnknown)
{
latitude = myPosition.Location.Latitude;
lengdegrad = myPosition.Location.Longitude;
}
myTerraService.TerraServiceSoapClient client = ny myTerraService.TerraServiceSoapClient ();
client.ConvertLonLatPtToNearestPlaceCompleted + = new EventHandler
client.ConvertLonLatPtToNearestPlaceAsync (ny myTerraService.LonLatPt {Lat = breddegrad, Lon = lengdegrad});
Kopier og lim inn følgende metode etter de siste krøllete båndene på knappen1_Click-metoden
void client_ConvertLonLatPtToNearestPlaceCompleted (objekt avsender, myTerraService.ConvertLonLatPtToNearestPlaceCompletedEventArgs e)
{
textBlock1.Text = e.Result;
}
La oss nå se hva koden gjør. Først får vi verdiene for breddegrad og lengdegrad ved å opprette et objekt av FeoCoordinateWatcher-klassen som heter myWatcher, og deretter få tilgang til breddegrad og lengdegrad ved å bare få tilgang til bredde- og lengdegradegenskapen til myPosition.Location. Deretter oppretter vi et asynkront anrop til webtjenesten som passerer breddegrad og lengdegrad. Endelig viser vi bare resultatet av webservice i tekstblocket. Et asynkront anrop er gjort slik at søknaden forblir lydhør selv når resultatet fra webtjenesten mottas.
Dette avslutter vår Windows Phone 7.5 Mango App utviklingsserie.
Lenker til alle delene av denne opplæringsserien:
- Lær å utvikle Windows Phone 7.5 Mango-applikasjoner: Del 1
- Utvikling av Windows Phone 7.5 Mango-applikasjoner: Del 2 (HelloWorld app)
- Utvikling av Windows Phone 7.5 Apps: Del 3; Variabler, datatyper og tildeling av verdier
- Utvikling av Windows 7.5 Mango Apps, Del 4: Hvis setning
- Utvikling av Windows 7.5 Mango Apps, Del 5: Operatører, uttrykk, uttalelser
- Utvikling av Windows 7.5 Mango Apps, Del 6: Switch Statement
- Utvikling av Windows Phone Mango Apps, del 7: for iterasjoner
- Bruke enkle hjelpemetoder mens du utvikler Windows Phone 7.5 Mango Apps: Del 8
- Arbeide med snorer: Windows Phone 7.5 Mango Apps Development - Del 9
- Arbeide med DateTime: Windows Phone 7.5 Mango Apps Development - Del 10
- Forstå og opprette klasser: Windows Phone 7.5 Mango Apps Development - Del 11
- Arbeide med klasser: Windows Phone 7.5 Mango Apps Development - Del 12
- Forstå navnegrupper: Windows Phone 7.5 Mango Apps Development - Del 13
- Innsamling av objekter: Windows Phone Apps Development Turorial - Del 14
- Forståelse XAML: Windows Phone Apps Development Turorial - Del 15
- Silverlight Layout Controls: Veiledning for Windows Phone Apps Development - Del 16
- XAML Hendelses- og Input Controls: Veiledning for Windows Phone Apps Development - Del 17
- Arbeide med Image Control: Veiledning for Windows Phone Apps Development - Del 18
- Arbeide med stiler og ressurser: Veiledning for utvikling av Windows Phone Apps Development - Del 19
- Bruk stil og tema ressurs til kontroller: Windows Phone Apps Development Tutorial - Del 20
- Navigere mellom XAML Pages: Windows Phone Apps Development Tutorial - Del 21
- Arbeide med programfeltet: Utviklingsopplæringen for Windows Phone Apps - Del 22
- Bruke lerret som en dialog: Windows Phone Apps Development Tutorial - Del 23
- Legge til forskjellige inngangskonfigurasjoner: Veiledning for veiledning for Windows Phone Apps - Del 24
- GPS, Location API og Calling Web Services: Windows Phone Apps Development Tutorial - 25.