Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 101 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
101
Dung lượng
3,34 MB
Nội dung
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 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 Tr 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 q 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 t v n đ 1.1 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 đ tài 1.2 M c tiêu đ tài 1.3 Ph CH ng pháp th c hi n NG 2: C 2.1 S LÝ THUY T T ng quan v l p trình Windows phone 2.1.1 Cài đ t môi tr 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 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 đ offline 27 2.5 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 đ 46 2.8.1 Tính c p bách c a v n đ 46 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ã 46 ng th c gi i mã t a đ 50 NG 3: XÂY D NG 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 đ 81 ng b ng xe buýt 73 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 đ 4.2 Nh ng h n ch 85 4.3 H c 85 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 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 đ 11 b Hình 2.14: L ng th c v hình trịn t m t m bán kính 45 c mã hóa thành ph n points 47 c gi i mã t a đ 51 c đ xây d ng ph 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 c sau ch n n xe 61 Hình 3.9: S đ 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 đ 64 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 i dùng lên b n đ 66 Hình 3.16: S đ 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 m bán kính 69 Hình 3.19: S đ phân tích ch c n ng nh p đ a ch t i h p tìm ki m 70 Hình 3.20: Xác đ nh v trí tìm tr m d ng 71 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 đ ng b ng xe buýt 74 Hình 3.23: Xác đ nh m b t đ u k t thúc b ng cách nh p đ a ch tr c ti p 75 Hình 3.24: L a ch n m b t đ u hay k t thúc b n đ 76 Hình 3.25: Giao di n trang download b n đ 81 Hình 3.26: Các pushpin đ 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 m b t đ u hay 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 m b t đ u m k t thúc Nguyên nhân, Google Direction Service th c hi n tìm đ ng gi a hai 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 m b t đ u m k t thúc “v trí đ ng” Theo đó, m b t đ u 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í m b t đ u 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 m b t đ u, n u ch n ch c n ng “ n đây”, ng d ng s hi u m k t thúc Hình 3.24: L a ch n m b t đ u hay k t thúc b n đ 3.3.8.2 Xây d ng class l u thơng tin l trình Sau xác đ nh m b t đ u m k t thúc, h th ng s tính tốn đ tr v l trình di chuy n gi a hai 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; } } privateList listofsteps; publicList Listofsteps { get { return listofsteps; } set { listofsteps = value; } } } Ph n đ 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; 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; } 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; } } private stringts_departure_stop_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 đ i t ng thu c class Legs đ i di n cho l trình t m b t đ u v m k t thúc M i đ i t ng thu c class Steps đ i di n cho t ng đo n đ ng l trình Trang 78 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 nhanh nh t Vi c xác đ nh th i gian 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 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 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 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 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 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 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 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 b nh t t ng t v i c ch tìm l trình có th i gian 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 đ xác đ nh giá vé c a t ng n xe 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 m khác vi c xác đ nh chi phí nh t nh sau: Quan m logic: chi phí nh t chi phí có giá tr nh nh t danh sách l trình Theo đó, l trình 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 m s d ng: chi phí nh t chi phí nh nh t danh sách l trình th t s có xe bt Theo đó, l trình 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 m Theo đó, l trình có chi phí nh t ng d ng c a đ tài l trình 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ó xe buýt 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 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 l p l i cho đ n h t l trình tìm th y 3.3.8.3.5 S n nh t Trong phân rã t p tin k t qu JSON, em ti n hành tính s n 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 b hồn tồn s n 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 nh t Trong ng d ng c a đ tài, l trình có s n nh t l trình b hồn toàn (s n b ng 0) l trình có s n nh t danh sách l trình th t s có xe buýt 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 t m b t đ u v 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 t m b t đ u v m k t thúc (theo th t vịng: có th t m b t đ u v m k t thúc ho c t m k t thúc v 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 d dàng quan sát ch d n đ ng b 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 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 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, u n Maps đ c s d ng thu c namespace Microsoft.Phone.Controls.Maps, vi c s d ng pushpin đ c th c hi n theo cách thông qua class Pushpin Vi c s d ng class Pushpin ng d ng Windows Phone có đ c m sau: u 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 u n Maps m t 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 m đ u m cu i l trình c a t ng n xe, đ nh v cá nhân, hi n th 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 Tuy nhiên, m c đ nh pushpin Windows phone có d ng nh sau: Do đó, vi c thay đ i đ nh d ng (template) c a pushpin 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 đ nh ngh a template, ta khai báo th ContentPresenter bên th ControlTemplate 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, m b t đ u m k t thúc ch c n ng tìm đ ng, ngồi vi c hi n th , cịn có 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 m b t đ u ho c m k t thúc) Sau đó, ng d ng s ch p hình giao di n b n đ t i v trí pushpin đ ng i 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 kho ng th i gian cho pushpin di chuy n Khi pushpin đ c di chuy n ta gán l i v trí 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 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 hồ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, nh ng ch c n ng khác nh tìm ki m tr m d ng, tìm đ ng đi, ng d ng s g i yêu c u đ 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 đ n cho ng Bi t đ c ti n trình đ 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 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 b ng xe buýt ch y 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 m v i bán kính ch đ nh Xác đ nh v trí GPS c a n tho i ng i dùng Tìm đ ng 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 nhanh nh t, b nh t, t n chi phí nh t s n 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 maps c a Windows phone sang b n đ Google maps c hai ch đ online offline; 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 đ y đ Trên môi tr Pushpin ng l p trình, xu t hi n c nh báo đ i v i u n Maps M t vài tính n ng, giao di n ch a h p d n đ ch m 4.3 H c ng i s d ng, hi u su t làm vi c ng phát tri n Hồ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 b ng xe buýt t v trí 97 Võ V n T n, thành ph H Chí Minh đ n 37 Ngơ T t T , qu n Bình Th nh, thành ph H Chí Minh, k t qu nh sau: 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 nhanh nh t K t qu tìm đ ng theo tiêu chí: 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 nh t Trang 89 S d ng tính n ng ch đ ng: Trang 90