Naučili sme sa o InputScopes v našom poslednom tutoriále ako súčasť vývojovej série Windows Phone 7.5 Mango App. V tejto lekcii sa dozvieme, ako získať celkovú pozíciu telefónu, to znamená jeho zemepisnú šírku a dĺžku, a potom zavolajte webovú službu, ktorá vyrieši zemepisnú šírku a dĺžku do formátu mesta, štátu a krajiny.
Windows Phone 7 je vybavený rozhraním GPS. V spojení s rozhraním Location Service API telefónu Windows 7 môžeme použiť na určenie zemepisnej šírky a dĺžky, t.j. aktuálnej pozície telefónu. Potom môžeme tieto hodnoty zemepisnej šírky a dĺžky použiť na určenie mesta, štátu a krajiny. Na vyriešenie mesta, štátu a krajiny používame webovú službu. Webovú službu možno považovať za metódu, ktorá prechádza cez internet. Webová služba je hosťovaná na serveri a jeho názov je exponovaný spolu s parametrami, ktoré bude akceptovať a aký typ údajov sa vráti späť. Môžeme volať takúto webovú službu cez internet, získať výsledky a urobiť niečo zmysluplné s získanými údajmi.
Vytvorte nový projekt Windows Phone 7 s jedinečným menom, ako je "GPSDemo". Skopírujte a vložte nasledujúci kód xaml do tabuľky panelu obsahu.
HorizontalAlignment = "ľavý"
Margin = "12,23,0,0"
Name = "textBlock1"
Text = ""
VerticalAlignment = "Top"
Šírka = "423" />
Výška = "72"
HorizontalAlignment = "ľavý"
Margin = "275,59,0,0"
Name = "Button1"
VerticalAlignment = "Top"
Width = "160"
Kliknite na tlačidlo = "button1_Click" />
S vyššie uvedeným kódom vytvoríme prázdny textový blok a tlačidlo s vlastníctvom obsahu sa zmenilo na Find Me. Prejdite na udalosť button1_Click. Než napíšeme tento kód, musíme pridať odkaz. Kliknite pravým tlačidlom myši na názov projektu v aplikácii Explore Explorer a zvoľte položku Add Reference z ponuky. Na karte ".Net" prejdite nadol a vyberte názov komponentu "System.Device". Kliknutím na tlačidlo OK pridajte súbor DLL do projektu. Ďalej napíšte nasledujúci riadok kódu po poslednom použití pomocou príkazu MainPage.xaml.cs.
pomocou System.Device.Location;
Ďalej vytvoríme odkaz na webovú službu. Ak to chcete urobiť, kliknite pravým tlačidlom myši na názov projektu a zvoľte položku Add Service Reference. Do textového poľa Adresa zadajte nasledujúcu adresu URL "https://msrmaps.com/TerraService2.asmx" a kliknite na tlačidlo "Choď". Po identifikácii webovej služby cez internet uvidíte zoznam operácií dostupných v rámci tejto webovej služby. Jednoduchá zmena priestoru názvov z ServiceReference1 na myTerraService a kliknite na tlačidlo OK. Visual Studio vytvára triedu proxy, ktorú budete používať na prácu s webovou službou. Akonáhle sa to stane, všetci sa rozhodnete pracovať s rozhraním GPS telefónu. Skopírujte a vložte nasledujúce riadky kódu do udalosti button1_Click.
GeoCoordinateWatcher myWatcher = nový GeoCoordinateWatcher ();
var myPosition = myWatcher.Position;
dvojitá šírka = 18.916;
dvojnásobná dĺžka = 72,9;
ak (! myPosition.Location.IsUnknown)
{
latitude = myPosition.LocationLatitude;
dĺžka = myPosition.Location.Longitude;
}
myTerraService.TerraServiceSoapClient client = nový myTerraService.TerraServiceSoapClient ();
client.ConvertLonLatPtToNearestPlaceCompleted + = nový EventHandler
client.ConvertLonLatPtToNearestPlaceAsync (nová myTerraService.LonLatPt {Lat = zemepisná šírka, Lon = zemepisná dĺžka});
Skopírujte a prilepte nasledujúcu metódu po posledných krovícoch metódy button1_Click
void client_ConvertLonLatPtToNearestPlaceCompleted (odosielateľ objektu, myTerraService.ConvertLonLatPtToNearestPlaceCompletedEventArgs e)
{
textBlock1.Text = e.Result;
}
Teraz sa pozrime na to, čo presne to urobil kód. Najprv získame hodnoty pre zemepisnú šírku a dĺžku vytvorením objektu triedy FeoCoordinateWatcher s názvom myWatcher a potom prístup k zemepisnej šírke a dĺžke jednoduchým prístupom k vlastnostiam zemepisnej šírky a dĺžky myPosition.Location. Ďalej vytvoríme asynchrónny hovor pre webovú službu prechádzajúcu zemepisnú šírku a zemepisnú dĺžku. Nakoniec jednoducho zobrazujeme výsledok webovej služby v textovom bloku. Asynchrónny hovor sa uskutoční tak, aby aplikácia zostala citlivá aj pri prijímaní výsledkov z webovej služby.
Toto ukončí našu sériu vývoja aplikácií Windows Phone 7.5 Mango App.
Odkazy na všetky časti tejto série tutoriálov:
- Naučte sa vyvíjať aplikácie Windows Phone 7.5 Mango aplikácie: Časť 1
- Vývoj aplikácií Windows Phone 7.5 Mango: Časť 2 (aplikácia HelloWorld)
- Vývoj aplikácií Windows Phone 7.5: časť 3; Premenné, typy údajov a priradenie hodnôt
- Vývoj aplikácií Windows 7.5 Mango Apps, časť 4: if statement
- Vývoj aplikácií Windows 7.5 Mango Apps, časť 5: Operátori, výrazy, vyhlásenia
- Vyvíjanie aplikácií Windows 7.5 Mango Apps, časť 6: Vyhlásenie prepínača
- Vyvíjanie aplikácií Windows Phone Mango Apps, časť 7: pre iterácie
- Použitie jednoduchých metód pomocníka pri vývoji aplikácií Windows Phone 7.5 Mango Apps: Časť 8
- Práca so strunami: Windows Phone 7.5 vývoj aplikácií Mango - časť 9
- Práca s DateTime: Windows Phone 7.5 Mango Apps rozvoj - časť 10
- Porozumenie a vytváranie tried: Windows Phone 7.5 vývoj aplikácií Mango - časť 11
- Práca s triedami: Windows Phone 7.5 vývoj aplikácií Mango - časť 12
- Pochopenie priestoru pre mená: Windows Phone 7.5 Rozvoj aplikácií Mango - časť 13
- Zbierka objektov: Vývojový turník Windows Phone Apps - časť 14
- Pochopenie XAML: Windows Phone Apps vývoj Turorial - časť 15
- Ovládacie prvky rozloženia Silverlight: Vývojový nástroj Windows Phone Apps - časť 16
- Ovládanie udalostí a vstupov XAML: Vývojový nástroj Windows Phone Apps - časť 17
- Práca s ovládaním obrázkov: Tutorial vývoja aplikácií Windows Phone Apps - časť 18
- Práca so štýlmi a zdrojmi: Windows Phone Apps Development Tutorial - časť 19
- Použite zdroj štýlov a tém na ovládacie prvky: Tutorial vývoja aplikácií Windows Phone Apps - časť 20
- Navigácia medzi stránkami XAML: Tutorial vývoja aplikácií Windows Phone Apps - časť 21
- Práca s aplikačnou lištou: Vývojový program Windows Phone Apps - časť 22
- Použitie plátna ako dialóg: Vývojový program Windows Phone Apps - časť 23
- Pridanie rôznych vstupných prístrojov: Nástroj pre vývoj aplikácií Windows Phone Apps - časť 24
- GPS, lokalizácia API a volanie webových služieb: Windows Phone Apps Vývojový výcvik - 25.