VÝVOJ APLIKÁCIÍ PRE WINDOWS 8

Využitie mapových služieb v aplikáciách Windows 8.1

Na­tív­na ma­po­vá plat­for­ma pre Win­dows 8.1 a Win­dows Pho­ne je Bing Maps, pre­to­že je tes­ne pre­po­je­ná s ope­rač­ným sys­té­mom. Skôr než za­čne­te s vý­vo­jom ap­li­ká­cie vy­uží­va­jú­cej služ­bu Bing Maps, mu­sí­te reali­zo­vať ne­ná­roč­nú tech­nic­kú a ad­mi­nis­tra­tív­nu príp­rav­nú fá­zu.

Do Vi­sual Stu­dia tre­ba nain­šta­lo­vať dopl­nok Bing Maps SDK for Win­dows Sto­re apps. Mu­sí­te ta­kis­to zís­kať Bing Maps Key (www.mic­ro­soft.com/maps/crea­te-a-bing-maps-key.aspx), kto­rý slú­ži na iden­ti­fi­ká­ciu va­šej ap­li­ká­cie v ma­po­vej služ­be a prí­pad­nú ta­ri­fi­ká­ciu pri in­ten­zív­nom ko­mer­čnom vy­uží­va­ní. Pri väč­ši­ne ne­ko­mer­čných ap­li­ká­cií si vy­sta­čí­te s Ba­sic Key. Pri po­ku­soch vy­uží­vaj­te 90-dňo­vý Trial Key.

mapy1.png

Obr. 1 For­mu­lár na zís­ka­nie kľú­ča Bing Maps Key

Pro­jekt ap­li­ká­cie

V ap­li­ká­cii vy­uží­va­jú­cej ma­po­vé služ­by ne­mô­že­te vy­tvo­riť spo­loč­ný pro­jekt pre všet­ky har­dvé­ro­vé plat­for­my, ale mu­sí­te za­lo­žiť oso­bit­né pro­jek­ty pre x86, x64 a ARM a tie pub­li­ko­vať pod spo­loč­ným náz­vom. Bu­dú­ci pou­ží­va­teľ ap­li­ká­cie to ne­pos­treh­ne, nain­šta­lu­je sa mu auto­ma­tic­ky vhod­ná ver­zia. Naj­uni­ver­zál­nej­šia je edí­cia pre x86, kto­rá po­be­ží aj na x64. Bu­dúc­nosť plat­for­my ARM je ne­istá, väč­ši­na vý­rob­cov sa prik­lá­ňa skôr k pro­ce­so­rom Atom no­vej ge­ne­rá­cie.

Vy­tvor­te pro­jekt s vy­uži­tím niek­to­rej zo šab­lón Blank, Grid, Split ale­bo Hub. S vý­ho­dou mô­že­te vy­užiť šab­ló­nu Hub, kto­rá pos­ky­tu­je va­ria­bil­né mož­nos­ti pre­zen­to­va­nia úda­jov a ob­sa­hu­je aj cvič­né úda­je vo for­má­te JSON. Tie­to úda­je mô­že­te ľah­ko up­ra­viť pod­ľa svoj­ho ná­me­tu a pre­pí­sať sta­tic­ký­mi in­for­má­cia­mi. V reál­nej ap­li­ká­cii po od­la­de­ní bu­de­te vy­uží­vať úda­je z webu.

Po­mo­cou me­nu PRO­JECT > Add Re­fe­ren­ce pri­daj­te do pro­jek­tu re­fe­ren­ciu na dopl­nok Bing Maps SDK.

mapy2.png

Obr. 2 Pri­da­nie re­fe­ren­cie na ma­po­vé služ­by

V sú­bo­re s kó­dom XAML strán­ky ap­li­ká­cie, na kto­rej bu­de­te zob­ra­zo­vať ma­pu, tre­ba pri­dať do ta­gu <Pa­ge> de­fi­ní­ciu men­né­ho pries­to­ru:

xmlns:bm="using:Bing.Maps"

Re­fe­ren­ciu mu­sí­te pri­dať aj do sú­bo­ru s ap­li­kač­ným kó­dom, nap­rík­lad Main­Pa­geXaml.cs, pre­to­že ur­či­te bu­de­te zob­ra­ze­nie ma­py v kó­de up­ra­vo­vať.

using Bing.Maps;

Nás­led­ne v kó­de XAML umies­tni­te ma­pu. Nap­rík­lad do kon­taj­ne­ro­vé­ho pr­vku Grid či Stac­kPa­nel pod­ľa za­mýš­ľa­né­ho di­zaj­nu ap­li­ká­cie v tva­re:

<bm:Map Cre­den­tials="VAS_BING_MAPS_KEY" x:Na­me="my­Map"></bm:Map>

Aby va­ša ap­li­ká­cia moh­la vy­uží­vať ak­tuál­nu po­lo­hu za­ria­de­nia, mu­sí­te to dek­la­ro­vať v ap­li­kač­nom ma­ni­fes­te. Za­škr­tni­te po­le Lo­ca­tion v zá­lož­ke Ca­pa­bi­li­ties. Po pr­vom spus­te­ní si po­tom ap­li­ká­cia vy­žia­da od pou­ží­va­te­ľa po­vo­le­nie prís­tu­pu k úda­jom o ak­tuál­nej po­lo­he.

mapy3.png

Obr. 3 Prík­lad ap­li­ká­cie vy­uží­va­jú­cej ma­po­vé služ­by (da­ta­bá­za zá­kaz­ní­kov bo­la nah­ra­de­ná fik­tív­ny­mi údaj­mi)

Pris­pô­so­be­nie zob­ra­ze­nia ma­py

Po­dob­ne ako cez webo­vý prís­tup aj v ap­li­ká­cii Win­dows 8.1 mož­no up­ra­viť zob­ra­ze­nie ma­py, prí­pad­ne kom­bi­ná­cie ma­po­vé­ho pod­kla­du a sa­te­lit­nej sním­ky. Za­čne­me spus­te­ním ap­li­ká­cie. Prav­de­po­dob­ne ne­bu­de­te chcieť zob­ra­ziť ma­pu ce­lé­ho sve­ta, ale za­me­rať fó­kus na ur­či­tú ob­lasť, nap­rík­lad mes­to. Na nas­ta­ve­nie vy­cen­tro­va­nia ma­py a jej mier­ky pou­ži­je­te prí­kaz Set­View. Pr­vý pa­ra­me­ter ty­pu Lo­ca­tion ur­ču­je ze­me­pis­né sú­rad­ni­ce stre­du zob­ra­ze­nia ma­py. Dru­hý pa­ra­me­ter, v na­šom prí­pa­de 12, je po­ža­do­va­ný zoom zob­ra­ze­nia ma­py. Na ilus­trá­ciu zoom 12 pok­ry­je prib­liž­ne plo­chu väč­šie­ho ok­re­su, pri zoo­me 17 sa zob­ra­zí mes­tská štvrť s nie­koľ­ký­mi uli­ca­mi.

ma­pa.Set­View(new Lo­ca­tion(49.0835, 19.6153), 12);
Typ zob­ra­ze­nia ma­py mô­že­te nas­ta­viť po­mo­cou at­ri­bú­tu Map­Ty­pe.
map.Map­Ty­pe = Map­Ty­pe.Road;
map.Map­Ty­pe = Map­Ty­pe.Aerial;
map.Map­Ty­pe = Map­Ty­pe.Bir­dseye;

Na ten­to účel mô­že­te vy­užiť vhod­ný pre­pí­na­cí pr­vok, nap­rík­lad Com­bo­Box ale­bo Ra­dio­But­ton. Ak po­ne­chá­te im­pli­cit­né nas­ta­ve­nie ShowNa­vi­ga­tion­Bar="True", zob­ra­zí sa lišta na pre­pí­na­nie ty­pu ma­py v ľa­vom hor­nom ro­hu a ne­mu­sí­te nič prog­ra­mo­vať. Pri nas­ta­ve­ní hod­no­ty Road sa zob­ra­zí kla­sic­ká ma­pa, Aerial zob­ra­zí kom­bi­ná­ciu ma­py a sa­te­lit­né­ho zob­ra­ze­nia. Bir­dseye ini­cia­li­zu­je zob­ra­ze­nie s per­spek­tí­vou.

mapy4.png

Obr. 4 Zob­ra­ze­nie ty­pu Road

Ma­pu mô­že­te otá­čať jed­no­du­chým nas­ta­ve­ním pa­ra­met­rov

map.Hea­ding += 90;

ale­bo vi­zuál­ne efek­tnej­šie s vy­uži­tím ani­má­cie.

Ti­meS­pan ani­ma­tion­Du­ra­tion = new Ti­meS­pan(0, 0, 0, 0, 500);
map.Set­Hea­ding(map.Hea­ding - 90, ani­ma­tion­Du­ra­tion);

Zob­ra­ze­nie ob­sa­hu na ma­pe

Naj­ty­pic­kej­ší sce­nár ap­li­ká­cií toh­to ty­pu bu­de zrej­me zob­ra­ze­nie in­for­má­cie o po­lo­he zá­uj­mo­vé­ho ob­jek­tu do ma­po­vé­ho pod­kla­du. Na ten­to účel sa vy­uží­va­jú ob­jek­ty ty­pu Pus­hPin. Je to aký­si elek­tro­nic­ký ek­vi­va­lent pri­pi­ná­či­ka na kla­sic­kej nás­ten­nej ma­pe, ozna­ču­jú­ci kon­krét­nu po­lo­hu. Ana­ló­gia s pri­pi­ná­či­kom je viac než vý­stiž­ná, pri­pi­ná­či­kom mô­že­te na ma­pu prip­núť lís­to­ček s dopl­nko­vý­mi in­for­má­cia­mi. Pus­hpin mô­že­te pri­dať po­mo­cou kó­du

Pus­hpin pp = new Pus­hpin();
pp.Text = "X";
Map­Layer.Set­Po­si­tion(pp, new Lo­ca­tion(49.077702, 19.617733));
ma­pa.Children.Add(pp);

Klik­nu­tím na zob­ra­ze­ný bod ini­cia­li­zu­je­te uda­losť a v jej ob­slu­he mô­že­te zob­ra­ziť dopl­nko­vé in­for­má­cie. V mno­hých prí­pa­doch bu­de­te pot­re­bo­vať zob­ra­ziť ne­ja­ké in­for­má­cie pria­mo do ma­py. Tak ako ste po­mo­cou prí­ka­zu ma­pa.Children.Add(pp) pri­da­li do ma­py dcér­sky ob­jekt ty­pu Pus­hPin, mô­že­te rov­na­kým pos­tu­pom pri­dať ľu­bo­voľ­ný va­mi vy­tvo­re­ný ob­jekt ty­pu User­Con­trol. V návr­ho­vom pros­tre­dí Blend si vy­tvo­rí­te nap­rík­lad dob­re či­ta­teľ­nú ná­vesť s po­lo­prie­pus­tným pod­kla­dom, „ko­mik­so­vú" bub­li­nu vy­chá­dza­jú­cu z kon­krét­ne­ho mies­ta ma­py a po­dob­ne.

pus­hpin­Ba­sic = new MojPr­vok();
ma­pa.Children.Add(MojPr­vok);
Map­Layer.Set­Po­si­tion(MojPr­vok, new Lo­ca­tion(49.077702, 19.617733));;

Po­dob­ne ako na na­šom ob­ráz­ku mô­že­te s vý­ho­dou vy­užiť kom­bi­ná­ciu ob­jek­tu ty­pu Pus­hpin (mod­rý krú­žok so zna­kom +) a pou­ží­va­teľ­sky de­fi­no­va­né­ho pr­vku. Na zob­ra­ze­nie plo­chy na ma­pe vy­uži­je­te

Map­Sha­pe­Layer mSha­pe­Layer;
Map­Layer mPin­Layer;
Lo­ca­tion­Collec­tion mPo­lyS­ha­pe­Lo­ca­tions;

mPo­lyS­ha­pe­Lo­ca­tions.Add(new Lo­ca­tion(15, -15));

mSha­pe­Layer = new Map­Sha­pe­Layer();
map.Sha­pe­Layers.Add(mSha­pe­Layer);
mPin­Layer = new Map­Layer();
map.Children.Add(mPin­Layer);

mPo­lyS­ha­pe­Lo­ca­tions = new Lo­ca­tion­Collec­tion();

Map­Layer.Set­Po­si­tion(pp, new Lo­ca­tion(49.077702, 19.617733));

pri­va­te void Ad­dPo­lyS­ha­pe(Map­Sha­pe map­Sha­pe)
{
    mSha­pe­Layer.Sha­pes.Clear();
    mPin­Layer.Children.Clear();
    mSha­pe­Layer.Sha­pes.Add(map­Sha­pe);
    for (int i = 0; i < mPo­lyS­ha­pe­Lo­ca­tions.Count; i++)
    {
        Pus­hpin pin = new Pus­hpin();
        pin.Text = i.ToS­tring();
        mPin­Layer.Children.Add(pin);
        Map­Layer.Set­Po­si­tion(pin, mPo­lyS­ha­pe­Lo­ca­tions[i]);
    }
}

pri­va­te Map­Po­ly­gon Crea­te­Po­ly­gon()
{
    Map­Po­ly­gon po­ly­gon = new Map­Po­ly­gon();
    po­ly­gon.FillCo­lor = Win­dows.UI.Co­lors.Blue;
    po­ly­gon.Lo­ca­tions = mPo­lyS­ha­pe­Lo­ca­tions;
    re­turn po­ly­gon;
}

Zdroj: IW 3-4/2014



Ohodnoťte článok:
   
 

24 hodín

týždeň

mesiac

Najnovšie články

Bez­peč­nosť a dos­tup­nosť dát: Nie je cloud ako cloud
Či už poskytujete služby, alebo predávate tovar, ste malá či veľká spoločnosť, bezpečnosť a dostupnosť vašich dát je veľmi dôležitá, v niektorých prípadoch až kriticky dôležitá. Práve vo chvíli, keď si začnete klásť otázky na túto tému a začnete pátrať po riešeniach, objavíte čaro cloudu. čítať »
 
Tren­dy v pod­ni­ko­vých in­for­mač­ných sys­té­moch ERP v ro­ku 2014
Tento rok sa v oblasti podnikových informačných systémov ERP ponesie v znamení niekoľkých výrazných trendov. Zvýšená pozornosť sa bude venovať používateľskej prívetivosti a mobilite, pokračovať bude nárast popularity dvojvrstvovej stratégie ERP. čítať »
 
Cis­co Ca­ta­lyst 2960-X v pros­tre­dí SP
Požiadavky na triple-play služby s gigabitovými prístupovými rýchlosťami sa stávajú realitou, vyžadujú však investíciu do hardvéru prístupovej vrstvy. čítať »
 
Ako efek­tív­ne vy­uží­vať svo­je zdro­je
V poslednom čase sa stretávame s pojmom cloud čoraz častejšie a pred pár mesiacmi bolo na stránkach INFOWARE porovnanie globálnych poskytovateľov cloudových služieb. čítať »
 
 
 
  Zdieľaj cez Facebook Zdieľaj cez Google+ Zdieľaj cez Twitter Zdieľaj cez LinkedIn Správy z RSS Správy na smartfóne Správy cez newsletter