Hi n nay, có r t nhi u hãng ph n m m phát tri n công ngh b n đ trên các thi t b di đ ng, trong đó ph i k đ n: Bing maps c a Microsoft, Yahoo!Maps c a Yahoo, Trendsmap c a m ng Twitter, Nokia maps c a Nokia… c bi t, đáng chú ý nh t là Google maps c a hãng ph n m m tìm ki m hàng đ u th gi i Google.
hi n th b n đ , Windows phone cung c p m t đi u khi n Maps. Tuy nhiên, d li u c a Bing maps t ng đ i không nhi u, gây khó kh n trong vi c tìm đ ng đi. Trong khi đó, v i ngu n d li u kh ng l , Google maps đ c s d ng r ng rãi h n, ph bi n trên h u h t các ng d ng tìm ki m và ch đ ng c a các thi t b di đ ng.
Vì th c n ph i thay th b n đ truy n th ng đ c tích h p s n trên Window phone - Bing maps b ng b n đ Google maps đ ng d ng t o ra có th ch y t t và đáp ng đ y đ nhu c u tìm đ ng đi c a ng i s d ng.
2.3.3 Chuy n đ i Bing maps sang Google maps
s d ng đ c đi u khi n Maps trong Windows phone, ng i l p trình c n ph i đ ng kí mi n phí mã khóa (key) dành cho nhà phát tri n t i đa ch https://www.bingmapsportal.com. Mã khóa (key) này đ c khai báo trong thu c tính CredentialsProvider c a th Map.
Vi c s d ng b n đ luôn đòi h i ph i cung c p thao tác thu nh đ có th quan sát bao quát hi n tr ng đ ng đi, nh ng c ng c n ph i có thao tác phóng to khi c n quan sát chi ti t m t n i nào đó trên b n đ …. i u khi n Map cung c p s n thao tác zoom d a trên thu c tính ZoomBarVisibility, giúp cho ng i l p trình ti t ki m đ c th i gian x lý vi c này.
Khi load b n đ , đi u khi n Maps liên t c g i hàm GetUri(int x, int y, int zoomLevel) trong đó x, y, zoomLevel l n l t là v đ , kinh đ và m c đ phóng to c a b n đ , đ tr v m t đ ng d n ch a nh b n đ v i kích th c 256*256 (pixel). Vì v y, gi i pháp đ chuy n đ i t Bing maps sang Google maps đó là vi t l i hàm GetUri(int x, int y, int zoomLevel) sao cho phù h p v i m c đích s d ng.
2.3.3.1. S d ng b n đ Google maps online
Trong tr ng h p online, c s cho vi c chuy n đ i Bing maps sang Google maps là vi c vi t l i hàm GetUri(int x, int y, int zoomLevel) đ hàm này tr đ n server c a Google l y file nh b n đ phù h p v i các thông s x, y, zoomLevel thay vì tr đ n server Microsoft nh m c đnh.
Google đã cung c p d ch v l y nh b n đ Google maps đ a ch : http://mt{0}.google.com/vt/lyrs={1}&z={2}&x={3}&y={4} Trong đó: {0}: s đ i di n cho server. {1}: ch đ hi n th c a b n đ . {2}: m c đ phóng to. {3}: t a đ x c a b n đ . {4}: t a đ y c a b n đ .
Sau khi hàm GetUri g i yêu c u đ n Server c a Goolge, file nh b n đ Google maps s đ c tr v và hi n th lên Bing maps cho ng i s d ng. Nh v y, v b n ch t là
ng d ng v n s d ng đi u khi n Bing maps nh ng hi n th trên Bing maps là b n đ Google maps.
2.3.3.2. S d ng b n đ Google Maps offline
Trong tr ng h p offline, đ hi n th b n đ Google maps, hàm GetUri s tr đ n Server c a ng d ng. Server này đ m nh n vai trò là nh n yêu c u t hàm GetUri, sau đó tìm trong ngu n nh Google maps (đã đ c n p vào ng d ng tr c đó) đ tìm ra file nh th a các thông s x, y, zoomLevel và tr v cho Bing maps đ hi n th lên cho ng i s d ng.
Ngu n nh Google maps ph i đ c n p vào ng d ng tr c đó thông qua hai cách: n p tr c ti p trong quá trình xây d ng ng d ng ho c cho phép download t i th i đi m ng i dùng yêu c u. Hi n nay, có r t nhi u công c cho phép t i b n đ Google maps v máy tính PC (Personal Computer) nh : Google Maps Tile Investigator, Google Maps Downloader,…Tuy nhiên, vi c s d ng các công c này có r t nhi u h n ch nh sau:
H u h t ch cho phép t i b n đ t i m t v trí kèm v i m t m c đ zoom nh t đnh.
zoom c a b n đ trong tr ng h p s d ng ph n m m ch a có b n quy n (key) là d i 13.
Các h n ch trên gây khó kh n th m chí không th s d ng các công c này trong vi c t i nh b n đ Google maps v máy PC đ làm ngu n nh cho ng d ng. B i ngu n nh Google maps dùng cho offline ph i đ m b o tính liên t c c a c m t khu v c v i đ y đ các m c đ zoom khác nhau. V n đ trên đòi h i c n ph i có m t gi i pháp khác trong vi c download b n đ Google maps v máy tính.
Trong quá trình tìm hi u đ xây d ng ng d ng, em nh n th y khi truy c p b n đ Google maps (t i đa ch : http://maps.google.com) b ng trình duy t Internet Explorer có đ c đi m nh sau: trình duy t Internet Explorer s l u các file nh Google maps đã load qua vào trong th m c t m là Temporary Internet Files, h n th n a tên c a m i file nh còn đ c l u kèm v i các thông s x, y, zoomLevel ng v i hàm GetUri. Nh v y, ta ch c n s d ng trình duy t Internet Explorer đ truy c p vào b n đ Google maps, sau đó kéo chu t đ xem toàn b b n đ c a m t khu v c nào đó v i đ y đ các m c đ zoom khác nhau, cu i cùng m file Temporary Internet Files đ copy toàn b nh Google maps.
Vi c s d ng trình duy t Internet Explorer đem đ n r t nhi u l i ích sau:
Không c n ph i cài đ t, Internet Explorer đ c tích h p kèm theo h đi u hành Windows.
Ti t ki m r t nhi u th i gian, công s c trong vi c t i b n đ Google maps.
Ngu n nh b n đ đ m b o đ c tính liên t c c a c khu v c v i đ y đ các m c đ zoom khác nhau tùy theo m c đích s d ng.
Các b c đ m th m c Temporary Internet Files nh sau:
M trình duy t Internet Explorer Tools Internet Options T i m c Browsing history, ch n Setting View files.
i v i vi c xây d ng server: do server này đ c dùng đ h tr cho ng d ng trong tr ng h p offline nên server s ch y localhost (đính kèm v i ng d ng). Sau khi hàm GetUri g i yêu c u, server s ti p nh n và tìm ra file nh thích h p tr v cho Bing maps đ hi n th lên cho ng i s d ng. Bên c nh đó, đ gi m t i hi u s c làm vi c cho ng d ng, nên ch trong tr ng h p không có k t n i internet thì hàm GetUri m i g i yêu c u đ n server c a ng d ng. Vi c xây d ng server h tr s d ng b n đ offline s đ c trình bày rõ ph n sau c a báo cáo.