Xây dựng ứng dụng tìm đường đi bằng xe buýt tối ưu theo nhiều tiêu chí trên điện thoại windows phone 8

101 427 3
Xây dựng ứng dụng tìm đường đi bằng xe buýt tối ưu theo nhiều tiêu chí trên điện thoại windows phone 8

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TR NG I H C M THÀNH PH H CHÍ MINH KHOA CƠNG NGH THƠNG TIN KHĨA LU N T T NGHI P tài: XÂY D NG NG D NG TÌM NG I B NG XE BUÝT T I U THEO NHI U TIÊU CHÍ TRÊN I N THO I WINDOWS PHONE - Gi ng viên h ng d n: Th c s H Quang Kh i - Sinh viên th c hi n: Lê H u Tài MSSV: 1051012145 Thành ph H Chí Minh, tháng n m 2014 L IC M N Tr c tiên, em xin g i l i tri ân n quý Th y (Cô) khoa công ngh thông tin – tr ng i h c M Thành ph H Chí Minh ã nhi t tình ch d y, truy n t ki n th c c ng nh kinh nghi m th c t cho em b n su t trình h c t p t i tr ng c bi t, em xin g i l i c m n sâu s c nh t n Th y Th c s H Quang Kh i, ng i ã h t s c quan tâm nhi t tình h ng d n em su t th i gian v a qua hoàn thành tài t án ngành n khóa lu n t t nghi p Bên c nh ó, em xin g i l i c m n chân thành n Th y Ti n s Phan t Phúc ã ch d y chia s kinh nghi m em hồn thành tính n ng s d ng b n offline cho tài Cu i cùng, em xin g i l i chúc s c kh e thành công n quý Th y, Cô tr ng i h c M thành ph H Chí Minh nói chung quý Th y, Cô khoa công ngh thông tin nói riêng, kính chúc q Th y (Cơ) th t nhi u s c kh e g t hái c nhi u thành công công vi c cu c s ng! Tp HCM, tháng n m 2014 Trân tr ng Sinh viên Lê H u Tài -i- NH N XÉT C A GI NG VIÊN H NG D N - ii - M CL C L IC M N i NH N XÉT C A GI NG VIÊN H NG D N ii DANH M C CÁC B NG vi DANH M C HÌNH NH vii DANH M C CÁC T VI T T T ix L IM U .x NG 1: T NG QUAN .1 CH 1.1 tv n 1.1.1 Th c tr ng giao thông hi n 1.1.2 Các gi i pháp công ngh hi n có 1.1.3 Lý ch n 1.2 M c tiêu 1.3 Ph CH tài ng pháp th c hi n NG 2: C 2.1 tài S LÝ THUY T T ng quan v l p trình Windows phone 2.1.1 Cài 2.1.2 B c c c a m t ng d ng 2.1.3 Tìm hi u XAML l p trình Windows phone 2.1.4 Ngôn ng C# vi c xây d ng ng d ng Windows phone 2.1.5 Tìm hi u LINQ To SQL 12 2.2 t môi tr ng S d ng GPS A-GPS Windows phone 15 2.2.1 T ng quan v GPS 15 2.2.2 T ng quan v A-GPS 15 2.2.3 S d ng GPS Windows phone 17 2.3 S d ng Google maps ng d ng Windows phone 20 2.3.1 Gi i thi u control Maps Windows phone 20 2.3.2 So sánh Bing maps Google maps 20 2.3.3 Chuy n i Bing maps sang Google maps 22 - iii - 2.4 L p trình client – server NET 24 2.4.1 T ng quan v l p trình client – server 24 2.4.2 Xây d ng Server h tr s d ng b n 2.5 offline 27 T ng quan v Web service 30 2.5.1 Gi i thi u v Web service 30 2.5.2 Xây d ng Web service 31 2.6 Google maps API Web services 32 2.6.1 Cú pháp s d ng 32 2.6.2 X lý k t qu tr v 32 2.6.3 Google Direction API Service 34 2.6.4 Google Geocoding API Service 37 2.6.5 Google Reverse Geocoding API Service 38 2.6.6 Google Place Autocomplete API Service 39 2.6.7 Google Place API Nearby Search Service 41 2.6.8 Google Place API Radar Search Service 42 2.6.9 Google Place Details API Service 43 2.7 Áp d ng cơng th c hình c u c a cosines (Spherical Law of Cosines) 44 2.7.1 Gi i thi u 44 2.7.2 V n d ng 44 2.8 Xây d ng ph ng th c gi i mã t a 2.8.1 Tính c p bách c a v n 2.8.2 C s c a vi c xây d ng ph 2.8.3 Ph CH ng th c gi i mã t a NG 3: XÂY D NG 46 46 ng th c gi i mã 46 50 NG D NG 54 3.1 Gi i thi u ng d ng 54 3.2 T ch c c s d li u 55 3.2.1 D li u c c b (Local Database) 55 3.2.2 D li u t Google Maps API Web Services: 58 3.3 Hi n th c ng d ng 59 3.3.1 Giao di n trang ch 59 - iv - 3.3.2 Hi n th danh sách n xe lên trang n xe 60 3.3.3 Hi n th thông tin c a n xe lên trang thông tin 61 3.3.4 Hi n th danh sách tr m d ng theo t ng n 62 3.3.5 Hi n th l trình xe buýt lên b n 64 3.3.6 nh v cá nhân 66 3.3.7 Ch c n ng tìm ki m tr m d ng 67 3.3.8 Tìm 3.3.9 Xây d ng trang download b n ng i b ng xe buýt 73 81 3.3.10 S d ng pushpin ng d ng 82 3.3.11 Xây d ng hình ch ti n trình th c hi n 84 CH NG 4: K T LU N 85 4.1 K t qu t c 85 4.2 Nh ng h n ch 85 4.3 H ng phát tri n 85 TÀI LI U THAM KH O 86 PH L C 87 -v- DANH M C CÁC B NG B ng 2.1: B ng mô t m t s ki u d li u ã c xây d ng s n B ng 2.2: B ng tóm t t thu c tính truy c p c a m t l p C# 11 B ng 2.3: B ng so sánh A-GPS GPS m t s l nh v c 16 B ng 2.4: B ng so sánh GeoCoordinateWatcher class Geolocator class 17 B ng 3.1: B ng TUYENXE .56 B ng 3.2: B ng TRAMDUNG 57 B ng 3.3: B ng LUOT 57 B ng 3.4: B ng LOTRINH 57 B ng 3.5: B ng thu c tính c a pushpin 82 - vi - DANH M C HÌNH NH Hình 2.1: Mơ hình ho t ng c a LINQ To SQL 12 Hình 2.2: Cách th c ho t ng c a A-GPS 16 Hình 2.3: So sánh Bing maps v i Google maps 21 Hình 2.4: Mơ hình chung c a m t ng d ng client – server có k t n i (TCP) 25 Hình 2.5: Mơ hình ho t ng c a server h tr s d ng b n offline 28 Hình 2.6: C u trúc c a m t b n tin yêu c u HTTP 28 Hình 2.7: C u trúc c a m t b n tin tr l i HTTP 29 Hình 2.8: Danh m c tr ng thái thông i p server g i client 29 Hình 2.9: Ki n trúc Web service 30 Hình 2.10: Minh h a ch c n ng AutoComplete 39 Hình 2.11: L c xây d ng ph Hình 2.12: L c 11 b Hình 2.13: S Hình 2.14: L 11 b c ng th c v hình trịn t m t i m bán kính 45 c mã hóa thành ph n points 47 c gi i mã t a xây d ng ph 51 ng th c gi i mã t a 52 Hình 3.1: S ch c n ng c a ng d ng 54 Hình 3.2: S liên k t c s d li u c a ng d ng 55 Hình 3.3: Mơ hình client – server c a ng d ng 58 Hình 3.4: Giao di n trang ch tr c sau ch n n xe 59 Hình 3.5: Giao di n trang n xe 60 Hình 3.6: S phân tích ch c n ng trang n xe 60 Hình 3.7: S phân tích ch c n ng hi n th thơng tin n xe 61 Hình 3.8: Giao di n trang thơng tin tr Hình 3.9: S c sau ch n n xe 61 phân tích ch c n ng hi n th tr m d ng theo n xe 62 Hình 3.10: Giao di n trang tr m d ng 62 - vii - Hình 3.11: Giao di n hi n th danh sách tr m d ng lên b n 63 Hình 3.12: S phân tích ch c n ng hi n th l trình lên b n Hình 3.13: S xây d ng hàm v l trình c a n xe buýt lên b n 64 Hình 3.14: Giao di n hi n th l trình di chuy n c a n xe lên b n 65 Hình 3.15: Giao di n hi n th v trí ng Hình 3.16: S i dùng lên b n 64 66 phân tích ch c n ng tìm ki m tr m d ng theo mã tr m 67 Hình 3.17: Giao di n ch c n ng tìm ki m tr m d ng theo mã tr m 68 Hình 3.18: S phân tích ch c n ng tìm ki m tr m d ng t m t i m bán kính 69 Hình 3.19: S phân tích ch c n ng nh p Hình 3.20: Xác nh v trí tìm tr m d ng 71 a ch t i h p tìm ki m 70 Hình 3.21: Giao di n hi n th k t qu tìm tr m d ng 72 Hình 3.22: S phân tích ch c n ng tìm Hình 3.23: Xác nh i m b t Hình 3.24: L a ch n i m b t u k t thúc b ng cách nh p u hay k t thúc b n Hình 3.25: Giao di n trang download b n Hình 3.26: Các pushpin ng i b ng xe buýt 74 a ch tr c ti p 75 76 81 c s d ng ng d ng 82 Hình 3.27: Giao di n hình ch ti n trình th c thi 84 - viii - DANH M C CÁC T VI T T T A-GPS Assisted - Global Positioning System API Application Programming Interface BTS Base Transceiver Station CSDL C s d li u GPS Global Positioning System HTTP HyperText Transfer Protocol IEEE Institute of Electrical and Electronics Engineers IP Internet Protocol LINQ Language Integrated Query PDA Personal Digital Assistant SDK Software Development Kit SOAP Simple Object Access Protocol SQL Structure Query Language TCP Transmission Control Protocol UDP User Datagram Protocol XAML Extensible Application Markup Language XML Extensible Markup Language - ix - Tr ng h p ng i dùng mu n s d ng v trí c a vi c tìm ng, ch vi c nh n gi (hold) t i v trí ó ch n i m b t u hay i m k t thúc l trình Vi c ánh d u tr c ti p b n s làm phát sinh v n sau: Các v trí c ánh d u có th n m gi a m t trung tâm th ng m i, b nh vi n, nhà hàng, cơng viên,… Do ó, ti n hành gi i mã thành ph n points v l trình b n l trình có kho ng “h ” v i i m b t u i m k t thúc Nguyên nhân, Google Direction Service th c hi n tìm ng gi a hai i m ng gi i quy t v n trên, sau th c hi n tìm ng, ta ti n hành d ch chuy n i m b t u i m k t thúc “v trí ng” Theo ó, i m b t u i m k t thúc l n l t t a u tiên cu i c a thành ph n points polyline S ki n hold c a b n c s d ng chung cho c ch c n ng: hold xác nh v trí tìm tr m d ng, hold xác nh v trí i m b t u i m k t thúc Do ó, phân bi t hold b n th c hi n ch c n ng nào, ta ph i ti n hành thêm vào bi n óng vai trị c báo hi u Khi ng i dùng ch n ch c n ng “T ây”, ng d ng s hi u ó i m b t n u ch n ch c n ng “ n ây”, ng d ng s hi u ó i m k t thúc Hình 3.24: L a ch n i m b t 3.3.8.2 u, u hay k t thúc b n Xây d ng class l u thông tin l trình Sau ã xác nh i m b t u i m k t thúc, h th ng s tính tốn tr v l trình di chuy n gi a hai i m theo tiêu chí tìm ng, d a d ch v Google Direction Service nâng cao hi u su t s d ng h n ch vi c truy xu t d ch v Google Direction Service m i ch n l i tiêu chí tìm ng, ng d ng l n u phân rã t p tin JSON s ti n hành tính tốn xác nh l trình theo t ng tiêu chí l u vào danh sách Theo ó, m i ng i dùng ch n l i tiêu chí, ng d ng s s d ng l i danh sách thay ph i truy c p l i vào d ch v Google Direction Service Ph n nh ngh a class Routes.cs l u thơng tin l trình public class Legs { public Legs() { Listofsteps = newList(); } c c t nh sau: private string end_address; public string End_address { get { return end_address; } set { end_address = value; } } Trang 76 private string arrival_time_text; Public string Arrival_time_text { get { return arrival_time_text; } set { arrival_time_text = value; } } privatedouble arrival_time_value; publicdouble Arrival_time_value { get { return arrival_time_value; } set { arrival_time_value = value; } } private string departure_time_text; public string Departure_time_text { get { return departure_time_text; } set { departure_time_text = value; } } private string distance_text; public string Distance_text { get { return distance_text; } set { distance_text = value; } } private string duration_text; public string Duration_text { get { return duration_text; } set { duration_text = value; } } privatedouble duration_value; publicdouble Duration_value { get { return duration_value; } set { duration_value = value; } } privatedouble chiphi; publicdouble Chiphi { get { return chiphi; } private string start_address; public string Start_address { get { return start_address; } set { start_address = value; } } private string end_location_lat; public string End_location_lat { get { return end_location_lat; } set { end_location_lat = value; } } private string end_location_lng; public string End_location_lng { get { return end_location_lng; } set { end_location_lng = value; } } private string start_location_lat; public string Start_location_lat { get { return start_location_lat; } set { start_location_lat = value; } } private string start_location_lng; public string Start_location_lng { get { return start_location_lng; } set { start_location_lng = value; } private double thoigiandibo publicdouble Thoigiandibo { get { return thoigiandibo; } set { thoigiandibo = value; } } privateint solanchuyentuyen; publicint Solanchuyentuyen { get { return solanchuyentuyen; } set { chiphi = value; } } privatedouble doanduongdibo; publicdouble Doanduongdibo { get { return doanduongdibo; } set { doanduongdibo = value; } } set { solanchuyentuyen = value; } } Ph n privateList listofsteps; publicList Listofsteps { get { return listofsteps; } set { listofsteps = value; } } } nh ngh a class steps nh sau: public class Steps { public Steps() { Listofchildrensteps = newList(); } private string html_instruction; public string Html_instruction { get { return html_instruction; } public string Ts_arrival_stop_location_lng { get { return ts_arrival_stop_location_lng; } set { ts_arrival_stop_location_lng = value; } } private string ts_arrival_time_text; public string Ts_arrival_time_text { get { return ts_arrival_time_text; } set { ts_arrival_time_text = value; } Trang 77 set { html_instruction = value; } } private string distance_text; public string Distance_text { get { return distance_text; } set { distance_text = value; } } private double distance_value; public double Distance_value { get { return distance_value; } set { distance_value = value; } } private string duration_text; public string Duration_text { get { return duration_text; } set { duration_text = value; } } private double duration_value; public double Duration_value { get { return duration_value; } set { duration_value = value; } } private string end_location; } private string ts_departure_time_text; public string Ts_departure_time_text { get { return ts_departure_time_text; } set { ts_departure_time_text = value; } } private string ts_departure_stop_name; public string Ts_departure_stop_name { get { return ts_departure_stop_name; } set { ts_departure_stop_name = value; } } private string ts_departure_stop_location_lat; public string Ts_departure_stop_location_lat { get { return ts_departure_stop_location_lat; } set { ts_departure_stop_location_lat = value; } } private string ts_arrival_stop_location_lat; public string Ts_arrival_stop_location_lat { get { return ts_arrival_stop_location_lat; } set { ts_arrival_stop_location_lat = value; } } public string End_location { get { return end_location; } set { end_location = value; } } private string start_location_lat; public string Start_location_lat { get { return start_location_lat; } set { start_location_lat = value; } } private string start_location_lng; public string Ts_departure_stop_location_lng { get { return ts_departure_stop_location_lng; } set { ts_departure_stop_location_lng = value; } } private string travel_mode; public string Travel_mode { get { return travel_mode; } set { travel_mode = value; } } private string ts_arrival_stop_name; public string Start_location_lng { get { return start_location_lng; } set { start_location_lng = value; } } private string polyline_points; public string Polyline_points { get { return polyline_points; } set { polyline_points = value; } } private string ts_arrival_stop_location_lng; public string Ts_arrival_stop_name { get { return ts_arrival_stop_name; } set { ts_arrival_stop_name = value; } } private string ts_line_name; public string Ts_line_name { get { return ts_line_name; } set { ts_line_name = value; } } List listofchildrensteps; publicList Listofchildrensteps { get { return listofchildrensteps; } set { listofchildrensteps = value; } } } Ý ngh a: m i k t thúc M i private stringts_departure_stop_location_lng; i t ng thu c class Legs i di n cho l trình i t i t ng thu c class Steps i di n cho t ng o n Trang 78 i mb t uv i m ng l trình ó 3.3.8.3 X lý tùy ch n tìm 3.3.8.3.1 ng T t c k t qu Tùy ch n n gi n ch gán danh sách t t c l trình tìm th y (lst_kq) cho ListBox k t qu (lst_Ketqua_timduong) nh sau: lst_Ketqua_timduong.DataContext = lst_kq; 3.3.8.3.2 Th i gian i nhanh nh t Vi c xác nh th i gian i nhanh nh t d a thu c tính Duration_value c a m i l trình Ban u, ta gi nh l trình u tiên l trình có th i gian i nhanh nh t thêm l trình ó vào danh sách l trình c n tìm Sau ó, ta l y thu c tính Duration_value c a l trình ó em so sánh v i Duration_value c a l trình cịn l i N u k t qu l n h n ch ng t l trình em so sánh ch a ph i l trình có th i gian i nhanh nh t, ó ta xóa ph n t c a l trình c n tìm, ng th i c p nh t l i l trình có Duration_value nh h n l trình có th i gian i nhanh nh t, thêm l trình vào danh sách l trình c n tìm N u k t qu b ng ch ng t c hai l trình u có th i gian i nhanh nh t, ó ta thêm l trình ó vào danh sách l trình c n tìm N u k t qu nh h n ch ng t l trình em so sánh l trình có th i gian i nhanh nh t, ó ta ti p t c so sánh v i l trình ti p theo Quá trình c l p i l p l i cho n h t l trình tìm th y 3.3.8.3.3 i b nh t C ch tìm l trình có th i gian i b nh t t ng t v i c ch tìm l trình có th i gian i nhanh nh t, nhiên thu c tính em so sánh Thoigiandibo thay cho Duration_value 3.3.8.3.4 Chi phí nh t Trong CSDL c a ng d ng có ch a thu c tính GIAVE_NGAND c a t ng n xe xác nh giá vé T p tin JSON tr v t d ch v Google Direction Service ch a thành ph n name line m t chu i g m: mã n + kho ng tr ng + ‘-‘ + kho ng tr ng + tên n xe Do ó, ta ph i ti n hành x lý chu i name l y mã n, sau ó s d ng mã n truy v n CSDL l y thu c tính GIAVE_NGAND Tuy nhiên, CSDL v n xe c a tài ch a y , giá vé ch m i c c p nh t t n n n 50, ó i v i n không thu c ph m vi trên, em t m th i quy c ngàn ng D a danh sách l trình tìm th y t d ch v Google Direction Service, em nh n th y có hai quan i m khác vi c xác nh chi phí nh t nh sau: Quan i m logic: chi phí nh t chi phí có giá tr nh nh t danh sách l trình Theo ó, l trình i b hồn tồn l trình có chi phí nh t (0 ng), ln t n t i h u h t k t qu tr v t Google Direction Service Quan i m s d ng: chi phí nh t chi phí nh nh t danh sách l trình th t s có i xe bt Theo ó, l trình i b hồn tồn (0 ng) khơng c tính vi c xác nh l trình có chi phí nh t Trang 79 T th c t ó, em ã dung hịa hai quan i m Theo ó, l trình có chi phí nh t ng d ng c a tài l trình i b hồn tồn (0 ng) l trình có chi phí nh t danh sách l trình th t s có i xe bt C ch xác nh l trình có chi phí nh t nh sau: Ban u, ta t qua ph n t tìm ph n t u tiên có chi phí khác 0, ng th i trình t, ta ghi nh n ph n t có chi phí b ng l u vào danh sách l trình c n tìm Ti p theo, ta l y ph n t có chi phí khác ó i so sánh v i ph n t l i danh sách N u ph n t có chi phí b ng ta thêm vào danh sách l trình c n tìm N u k t qu c a phép so sánh l n h n t c l trình em so sánh ch a ph i l trình có chi phí nh t, ó ta xóa l trình danh sách l trình c n tìm ngo i tr l trình có chi phí b ng 0, ng th i c p nh t l i l trình có chi phí h n l trình có chi phí nh t, thêm l trình vào danh sách l trình c n tìm N u k t qu c a phép so sánh b ng nhau, ch ng t c l trình u có chi phí nh t, ta thêm l trình ó vào danh sách l trình c n tìm Ng c l i, n u k t qu c a phép so sánh nh h n, t c l trình em so sánh l trình có chi phí nh t, ó ta ti p t c so sánh v i l trình ti p theo Quá trình c l p i l p l i cho n h t l trình tìm th y 3.3.8.3.5 S n i nh t Trong phân rã t p tin k t qu JSON, em ti n hành tính s n i cho t ng l trình Theo ó m i l n chuy n n, s n s c ng thêm 1, i v i l trình i b hồn tồn s n i b ng T ng t nh tr ng h p chi phí nh t, c ng có hai quan ni m v vi c xác nh l trình có s n i nh t Trong ng d ng c a tài, l trình có s n i nh t l trình i b hồn tồn (s n i b ng 0) l trình có s n nh t danh sách l trình th t s có i xe bt 3.3.8.3.6 Xem k t qu Sau th c hi n ch c n ng tìm ng, ng d ng s tr v trang k t qu T i ây, ch a thông tin: s k t qu danh sách l trình tìm th y M i ph n t danh sách s ch a thơng tin v l trình (kho ng cách th i gian) kèm ch d n i t i m b t u v i m k t thúc Khi ng i dùng ch n m t k t qu , ng d ng s chuy n sang trang b n , v l trình di chuy n, hi n th button ch ng Các button ch ng bao g m: Nút hi n th k t qu : quay tr v trang k t qu Nút next previous: ch ng i t i m b t u v i m k t thúc (theo th t vịng: có th t i m b t u v i m k t thúc ho c t i m k t thúc v i m b t u) Khi th c hi n tính n ng này, m t pushpin s c t o giúp ng i dùng ng i b n d dàng quan sát ch d n Trang 80 3.3.9 Xây d ng trang download b n Trang download c xây d ng cho phép ng i dùng download b n Google maps v s d ng offline Ch c n ng s k t n i n Web service c xây d ng c s lý thuy t ch ng ph c v vi c t i b n v i n tho i ng i dùng Hình 3.25: Giao di n trang download b n Trang 81 3.3.10 S d ng pushpin ng d ng 3.3.10.1 Hi n th pushpin lên b n Pushpin m t i t ng c s d ng ính kèm v i i u n Maps, cho phép ng i dùng hi n th m t thông báo ho c m t hình nh, icon lên b n Trong Windows phone 8, vi c s d ng pushpin c th c hi n qua hai cách: S d ng class Pushpin thu c namespace Microsoft.Phone.Controls.Maps S d ng class MapOverlay thu c namespace Microsoft.Phone.Maps.Controls Trong ng d ng c a tài, i u n Maps c s Microsoft.Phone.Controls.Maps, ó vi c s d ng pushpin thơng qua class Pushpin d ng thu c namespace c th c hi n theo cách Vi c s d ng class Pushpin ng d ng Windows Phone có c i m sau: u i m: o Hi n th c thơng báo ho c hình nh, icon lên b n o D dàng thay i template c a pushpin H n ch : o S d ng class Pushpin ng d ng Windows phone s nh n c nh báo “obsolete” (t m d ch l i th i) Tuy nhiên, c nh báo không h c nh h ng n ng d ng B qua c nh báo có th s d ng k t h p v i i u n Maps m t i u có th ch p nh n c M t it ng thu c class Pushpin s có thu c tính sau: B ng 3.5: B ng thu c tính c a pushpin - Location: v trí c a pushpin - Content: n i dung c a pushpin - Template: ki u hi n th c a pushpin - Fontsize: c ch hi n th pushpin - Foreground: màu ch hi n th pushpin Trong ng d ng c a tài, pushpin - Background: màu n n c a pushpin - PositionOrigin: quy nh v trí c a pushpin so v i Location c a pushpin, th ng c s d ng pushpin có gán thu c tính template c s d ng tính n ng sau: Hi n th tr m d ng, hi n th i m u i m cu i l trình c a t ng n xe, v cá nhân, hi n th i m b t u k t thúc ch c n ng tìm ng Hình 3.26: Các pushpin c s d ng ng d ng Trang 82 nh Tuy nhiên, m c Do ó, vi c thay nh pushpin Windows phone có d ng nh sau: i nh d ng (template) c a pushpin i u t t y u Ngu n template c a pushpin ph i c khai báo ph n resources t i trang xaml N u mu n hi n th n i dung lên template ph n khai báo th ContentPresenter bên th ControlTemplate nh ngh a template, ta 3.3.10.2 Di chuy n pushpin Trong ng d ng c a tài, i v i pushpin i di n cho v trí tìm tr m d ng, ng, ngồi vi c hi n th , cịn có i m b t u i m k t thúc ch c n ng tìm thêm tính n ng cho phép ng i dùng di chuy n b n n v trí mong mu n ây c xem tính n ng r t quan tr ng, h tr ng i dùng vi c thay i v trí b n Xét v t ng th , mu n di chuy n m t pushpin, ta ph i b t s ki n drag (nh n, gi di chuy n) c a pushpin ó x lý Tuy nhiên, mơi tr ng l p trình ng d ng Windows phone khơng h tr s ki n drag cho l p trình viên Do ó, em ã phân tích s ki n drag thành s ki n c u thành theo trình t sau: MouseLeftButtonDown (nh n), MouseMove (di chuy n), MouseLeftButtonUp (th ra) Khi nh n vào pushpin, ng d ng s phân bi t lo i pushpin mà ng i dùng tác ng (pushpin i di n cho v trí tìm tr m d ng hay i di n cho i m b t u ho c i m k t t i v trí pushpin ó ng i thúc) Sau ó, ng d ng s ch p hình giao di n b n dùng có th di chuy n c pushpin Khi ng i dùng tác ng vào pushpin di chuy n, m c nh b n Google maps s di chuy n theo v trí tác ng, cịn pushpin s ng im Do ó, gi i quy t v n trên, em ã s d ng i t ng Timer “d ng” s di chuy n c a b n m t c di chuy n ta gán l i v trí kho ng th i gian cho pushpin di chuy n Khi pushpin location cho pushpin Riêng i v i pushpin i di n cho v trí tìm tr m d ng, vi c di chuy n pushpin òi h i ph i v l i ph m vi tìm ki m cho phù h p v i ng c nh m i Khi ng i dùng th pushpin ra, b n s c s d ng tr l i ng th i c p nh t l i a ch c a a i m mà pushpin di chuy n n thông qua hàm ReverseGeocode (tìm a ch t t a ) Riêng i v i pushpin i di n cho v trí tìm tr m d ng, ph n di chuy n, pushpin c t o m i hoàn tồn, ó ph i gán l i s ki n có th ti p t c di chuy n l n sau Trang 83 3.3.11 Xây d ng hình ch ti n trình th c hi n Trong ng d ng c a tài có nh ng thao tác òi h i ph i m t m t th i gian m i có th hồn thành Ch ng h n nh ch c n ng hi n th tr m d ng, ng d ng ph i m t vài giây m i hi n th lên cho ng i dùng ph i ti n hành x lý load d li u t CSDL Hay, ng i, ng d ng s g i yêu c u nh ng ch c n ng khác nh tìm ki m tr m d ng, tìm n server c a Google, nh v y có m t kho ng th i gian mà ng d ng ph i ch server c a Google ph n h i k t qu Kho ng th i gian ch i v i ch c n ng c a ng d ng ch m t kho ng vài giây, nhiên, xét v m t s d ng vi c hi n th hình ch ti n trình th c thi i v i ng i dùng r t c n thi t S d ng hình ch ti n trình th c thi em Bi t c ti n trình ang n cho ng i dùng l i ích sau: c th c thi hình ch cịn c k t h p v i m t progressbar cho phép ng bi t c t l ph n tr m (th i gian) ti n trình ã th c hi n i dùng H n ch vi c s d ng nhi u ch c n ng khác liên t c t i m t th i i m i u r t có ý ngh a i v i ng d ng có k t n i truy xu t d li u t xa Trang 84 CH 4.1 K t qu t NG 4: K T LU N c tài ã k t h p thành cơng gi a l p trình Windows phone 8, Google maps, Google maps API Web Service CSDL t o nên ng d ng tìm ng i b ng xe buýt ch y i n tho i Windows phone v i tính n ng sau: Xem thơng tin n xe, l trình, tr m d ng b n Tìm ki m tr m d ng theo hai c ch : d a vào mã tr m ho c tìm ki m tr m d ng t m t i m v i bán kính ch nh Xác nh v trí GPS c a i n tho i ng i dùng Tìm ng i b ng xe buýt v i nhi u tùy ch n phong phú: t t c k t qu ho c t i u theo b n tiêu chí th i gian i nhanh nh t, i b nh t, t n chi phí nh t s n i nh t Bên c nh ó, tài c ng ã thành công vi c chuy n i b n m c nh Bing online offline; maps c a Windows phone sang b n Google maps c hai ch xây d ng thành công ph ng th c gi i mã t a v n d ng thành công công th c hình c u c a Cosines vi c v hình trịn b n xác nh ph m vi tìm ki m 4.2 Nh ng h n ch C s d li u v n xe, l trình ch a hồn ch nh, ch a Trên mơi tr Pushpin ng l p trình, xu t hi n c nh báo M t vài tính n ng, giao di n ch a h p d n ch m 4.3 H c ng y i v i i u n Maps i s d ng, hi u su t làm vi c ng phát tri n Hoàn thi n h n n a tính n ng theo h dùng ng d s d ng, thân thi n h n v i ng i Hoàn ch nh CSDL v n xe, tr m d ng Phát tri n thêm m t s tính n ng m i nh phát tín hi u n m t tr m d ng ó, cho phép g i k t qu tìm ki m qua SMS hay trang m ng xã h i,… ng d ng có th k t h p v i h th ng khác: ch ng h n h th ng camera giao thông, h th ng d báo th i ti t giúp ng i dùng có nhi u thơng tin h n v l trình di chuy n Trang 85 TÀI LI U THAM KH O Tài li u tham kh o: [1] Bob Tabor, Clint Rutkas, Larry Lieberman, “Programming Windows Phone 7”, 2010 [2] Bob Tabor, Clint Rutkas, Larry Lieberman, Gabriel Svennerberg, “Windows Phone development for absolute beginners” Trang web/di n àn tham kh o: [3] www.windowsphonegeek.com/ [4] https://developers.google.com/maps/documentation/webservices/ [5] www.msdn.microsoft.com [6] www.en.wikipedia.org [7] http://developer.nokia.com [8] http://stackoverflow.com/ Trang 86 PH L C M t s hình nh v giao di n c a ng d ng ch c n ng tìm ng i: Ví d : tìm ng i b ng xe buýt t v trí 97 Võ V n T n, thành ph H Chí Minh Ngơ T t T , qu n Bình Th nh, thành ph H Chí Minh, k t qu nh sau: n 37 Ch n l trình Trong danh sách k t qu tr v , ng i dùng ch n m t l trình, ng d ng s quay v trang b n ng th i hi n th l trình kèm thơng tin liên quan n l trình ó lên b n Bên c nh ó, ng i dùng c ng có th thay i tiêu chí tìm ng b ng cách xác nh tùy ch n (option) t i h p ch n tiêu chí Trang 87 K t qu tìm ng theo tiêu chí: th i gian i nhanh nh t K t qu tìm ng theo tiêu chí: i b ng n nh t Trang 88 K t qu tìm ng theo tiêu chí: chi phí nh t K t qu tìm ng theo tiêu chí: s n i nh t Trang 89 S d ng tính n ng ch ng: Trang 90 ... ng xe buýt c a ng i dân ngày t ng cao kéo theo ó nhu c n tìm n xe buýt, tr m d ng, ng i c ng t ng lên k Tuy nhiên, v i m t b n l u thông xe buýt b ng gi y nh hi n nay, vi c tìm ki m m t n xe buýt. .. dùng tìm ng i b ng xe bt r t cịn nhi u h n ch Xu t phát t th c t i l i gi i pháp công ngh hi n có, em ã xây d ng ng d ng tìm ng i b ng xe buýt t i u theo nhi u tiêu chí i n tho i Windows phone. .. n m m tìm ng i b ng xe buýt t i Vi t Nam Windows phone r t ít, n c ch có m t vài ph n m m nh : BusMap,…Do ó, vi c xây d ng phát tri n m t ng d ng tìm ng i b ng xe buýt i n tho i Windows phone

Ngày đăng: 18/05/2015, 02:30

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan