1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 430 3

Đ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

Thông tin cơ bản

Định dạng
Số trang 101
Dung lượng 3,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

16 B ng 2.4: B ng so sánh GeoCoordinateWatcher class và Geolocator class ..... DANH M C CÁC T VI T T T A-GPS Assisted - Global Positioning System API Application Programming Interface BT

Trang 1

TIÊU CHÍ TRÊN I N THO I WINDOWS PHONE 8

- Gi ng viên h ng d n:

- Sinh viên th c hi n:

Lê H u Tài MSSV: 1051012145

Thành ph H Chí Minh, tháng 5 n m 2014

Trang 2

L I C 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 và các b n trong su t quá 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 và nhi t tình h ng d n em trong 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 và chia s kinh nghi m đ

em hoà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 và thành công đ n quý Th y, Cô tr ng

i h c M thành ph H Chí Minh nói chung và quý Th y, Cô khoa công ngh thông tin

nói riêng, kính chúc quý Th y (Cô) th t nhi u s c kh e và luôn g t hái đ c nhi u thành công trong công vi c và trong cu c s ng!

Tp HCM, tháng 5 n m 2014

Trân tr ng Sinh viên Lê H u Tài

Trang 3

NH N XÉT C A GI NG VIÊN H NG D N

Trang 4

M C L C

L I C 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 I M U x

CH NG 1: T NG QUAN 1

1.1 t v n đ 1

1.1.1 Th c tr ng giao thông hi n nay 1

1.1.2 Các gi i pháp công ngh hi n có 1

1.1.3 Lý do ch n đ tài 3

1.2 M c tiêu đ tài 3

1.3 Ph ng pháp th c hi n 3

CH NG 2: C S LÝ THUY T 4

2.1 T ng quan v l p trình Windows phone 8 4

2.1.1 Cài đ t môi tr ng 4

2.1.2 B c c c a m t ng d ng 4

2.1.3 Tìm hi u XAML trong l p trình Windows phone 5

2.1.4 Ngôn ng C# trong vi c xây d ng ng d ng trên Windows phone 5

2.1.5 Tìm hi u LINQ To SQL 12

2.2 S d ng GPS và A-GPS trên 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 trên Windows phone 17

2.3 S d ng Google maps trong ng d ng Windows phone 8 20

2.3.1 Gi i thi u control Maps trong Windows phone 8 20

2.3.2 So sánh Bing maps và Google maps 20

2.3.3 Chuy n đ i Bing maps sang Google maps 22

Trang 5

2.4 L p trình client – server trên 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 ng th c gi i mã 46

2.8.3 Ph ng th c gi i mã t a đ 50

CH 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

Trang 6

3.3.2 Hi n th danh sách tuy n xe lên trang tuy n xe 60

3.3.3 Hi n th thông tin c a tuy 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 tuy 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 đ ng đi b ng xe buýt 73

3.3.9 Xây d ng trang download b n đ 81

3.3.10 S d ng pushpin trong ng d ng 82

3.3.11 Xây d ng màn 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 

Trang 7

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 7

B ng 2.2: B ng tóm t t các thu c tính truy c p c a m t l p trong C# 11

B ng 2.3: B ng so sánh A-GPS và GPS trên m t s l nh v c 16

B ng 2.4: B ng so sánh GeoCoordinateWatcher class và 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 các thu c tính c a pushpin 82

Trang 8

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 trong 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 ng th c v hình tròn t m t đi m và bán kính 45

Hình 2.12: L c đ 11 b c mã hóa thành ph n points 47

Hình 2.13: S đ 11 b c gi i mã t a đ 51

Hình 2.14: L 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 và sau khi ch n tuy n xe 59

Hình 3.5: Giao di n trang tuy n xe 60

Hình 3.6: S đ phân tích ch c n ng trang tuy n xe 60

Hình 3.7: S đ phân tích ch c n ng hi n th thông tin tuy n xe 61

Hình 3.8: Giao di n trang thông tin tr c và sau khi ch n tuy n xe 61

Hình 3.9: S đ phân tích ch c n ng hi n th tr m d ng theo tuy n xe 62

Hình 3.10: Giao di n trang tr m d ng 62

Trang 9

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 tuy 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 tuy 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 đi m và 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 đi b ng xe buýt 74

Hình 3.23: Xác đ nh đi m b t đ u và 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 đi m b t đ u hay k t thúc trên 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 trong ng d ng 82

Hình 3.27: Giao di n màn hình ch ti n trình th c thi 84

Trang 10

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

LINQ Language Integrated Query

PDA Personal Digital Assistant

SDK Software Development Kit

SOAP Simple Object Access Protocol

TCP Transmission Control Protocol

UDP User Datagram Protocol

XAML Extensible Application Markup Language

XML Extensible Markup Language

Trang 11

L I M U

Hi n nay, nhu c u đi l i b ng xe buýt c a ng i dân ngày càng t ng cao kéo theo

đó là nhu c n tìm các tuy n xe buýt, tr m d ng, đ ng đi c ng t ng lên đáng 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 tuy n

xe buýt gây r t nhi u khó kh n cho ng i dân trong vi c đi l i, đ c bi t là đ i v i h c sinh, sinh viên, ng i dân m i đ n thành ph Còn đ i v i ng i dân đã “quen” v i vi c

s d ng d ch v xe buýt thì nhu c u c n tìm m t l trình theo ý mình nh th i gian đi nhanh nh t, ít t n chi phí nh t, th i gian đi b ng n nh t ho c s tuy n đi ít nh t là m t

đi u r t c n thi t Do đó, c n ph i có m t ti n ích h tr ng i dùng tìm đ ng đi b ng xe buýt theo nhi u tiêu chí giúp cho vi c đi l i c a ng i dân nhanh chóng và hi u qu h n

Nh ng n m g n đây, ngành đi n tho i di đ ng phát tri n v t b c Smartphone ra

đ i làm thay đ i nh n th c c a con ng i v đi n tho i di đ ng V i m t chi c smartphone nh , g n trong tay, ng i s d ng có th làm m i đi u mình thích, t các

ch c n ng c b n truy n th ng nh nghe, g i, nh n tin,…đ n các ch c n ng nâng cao nh

l t web, xem phim, nghe nh c, đ nh v GPS, xem b n đ tr c tuy n,…Song, s l ng các ph n m m h tr ng i dùng tìm đ ng đi b ng xe buýt là r t ít và còn nhi u h n ch

Xu t phát t th c t đi l i và các 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í trên đi n tho i Windows phone 8 ng d ng là s k t h p gi a d li u v các tuy n xe buýt, tr m d ng v i b n đ Google maps và truy xu t thông tin t các c ng Google maps API Web services đ t o nên ng d ng hoàn ch nh k t h p v i giao di n đ p, giúp vi c đi l i c a ng i dùng tr nên d dàng, nhanh chóng và hi u qu

Khóa lu n đ c th c hi n trong kho ng th i gian t tháng 3/2014 đ n cu i tháng 05/2014 và đ c phát tri n t đ án ngành ây là k t qu nghiên c u trong su t quá trình tìm ki m, thu th p d li u v các tuy n xe, tr m d ng v i m c tiêu là xây d ng m t ng

d ng tìm đ ng đi b ng xe buýt theo nhi u tiêu chí, bên c nh đó, ng d ng c ng ph i có

ch c n ng cho phép ng i dùng tra c u thông tin, tìm ki m tr m d ng, đ nh v cá nhân,…

Báo cáo khóa lu n t t nghi p đ c chia làm 4 ph n chính:

CH NG 1: T NG QUAN

CH NG 2: C S LÝ THUY T

CH NG 3: XÂY D NG NG D NG

CH NG 4: K T LU N

Tuy đã r t c g ng, tìm hi u, h c h i đ th c hi n đ tài, song do kh n ng v n

d ng còn h n ch , th i gian th c hi n không nhi u, l ng ki n th c ti p thu còn h p nên

ph n báo cáo và ng d ng c a em còn nhi u thi u sót Em xin ghi nh n t t c ý ki n đóng góp t quý Th y (Cô), các b n sinh viên,…đ ng d ng ngày càng đ c hoàn thi n h n

Trân tr ng Sinh viên Lê H u Tài

Trang 12

đ ng xá ch n ch t, gây khó kh n cho ng i dân trong vi c đi l i V n n n k t xe, tình

tr ng ách tách giao thông x y ra th ng xuyên vào gi cao đi m gây b c xúc trong nhân dân V n đ trên đòi h i c n ph i có m t gi i pháp đ gi i quy t bài toán v giao thông

H ng n m, các thành ph l n đón nh n hàng ngàn h c sinh, sinh viên, công nhân,

ng i dân t nhi u t nh, thành trong c n c v h c t p, sinh s ng và làm vi c S l ng

xe máy quá đông đ c xem là m t trong nh ng nguyên nhân gây nên tình tr ng k t xe t i đây Do đó, đ kéo gi m tình tr ng ùn t c giao thông đòi h i c n có m t gi i pháp h n ch

s l ng xe g n máy trên đ ng nh ng đ ng th i ph i b o đ m không nh h ng đ n

vi c đi l i c a ng i dân

Nh ng n m qua, thành ph t p trung vào vi c hoàn thi n và nâng cao ch t l ng

c a lo i hình đi l i b ng ph ng ti n xe buýt Th c t hi n nay, nhu c u đi l i b ng xe buýt c a ng i dân ngày càng t ng cao kéo theo đó là nhu c u tìm các tuy n xe, tr m

d ng, đ ng đi c ng t ng lên đáng k

Tuy nhiên, bên c nh nh ng m t đ t đ c, v n còn có nhi u h n ch khi n ph ng

ti n này ch a th t s tr thành ng i b n đ ng hành c a nhân dân trong vi c đi l i h ng ngày Thông tin v các tuy n xe, tr m d ng ch a th t s đáp ng đ c yêu c u đa d ng,

m i lúc, m i n i c a ng i dùng M t b n đ xe buýt b ng gi y v i vô s các tuy n xe gây khó kh n cho ng i dân trong vi c đi l i nh t là đ i v i h c sinh, sinh viên, ng i dân m i đ n thành ph Còn đ i v i ng i dân đã “quen” v i vi c s d ng d ch v xe buýt thì nhu c u c n tìm m t l trình theo ý mình nh th i gian đi nhanh nh t, ít t n chi phí nh t, th i gian đi b ít nh t ho c s tuy n đi ít nh t là m t đi u r t c n thi t

Th c tr ng trên đòi h i c n ph i có m t gi i pháp giúp ng i dân trong vi c tìm

ki m thông tin các tuy n xe, tr m d ng và tìm đ ng đi b ng xe buýt theo nhi u tiêu chí

m t cách chính xác, nhanh chóng và hi u qu

1.1.2 Các gi i pháp công ngh hi n có

M c dù có nhi u ph ng pháp, cách th c đ h tr cho vi c đi l i, song không ph i

ph ng pháp nào c ng mang l i hi u qu t t nh t Vi c s d ng b n đ giao thông b ng

gi y gây r t nhi u khó kh n cho ng i dân nh ng đôi khi l i không chính xác Trong khi

đó, n u s d ng b n đ online trên các thi t b nh máy tính bàn, laptop, máy tính

b ng…nh ng s n ph m này m c dù cho hi u qu t t nh ng l i không phù h p khi giao thông vì quá c ng k nh, l i kém an toàn cho ng i s d ng V n đ đ t ra là c n ph i có

Trang 13

m t thi t b v a g n, nh nh ng ph i có kh n ng h tr b n đ , h tr vi c tìm đ ng đi nhanh chóng, hi u qu cho ng i s d ng

Nh ng n m g n đây, ngành đi n tho i di đ ng phát tri n v t b c Smartphone ra

đ i làm thay đ i nh n th c c a con ng i v đi n tho i di đ ng V i m t chi c smartphone nh , g n trong tay, ng i s d ng có th làm m i đi u mình thích, t các

ch c n ng c b n, truy n th ng nh nghe, g i, nh n tin,…đ n các ch c n ng nâng cao

nh l t web, xem phim, nghe nh c, đ nh v GPS, xem b n đ tr c tuy n,… Smartphone

d n d n tr thành ng i b n đ ng hành c a con ng i trong xã h i hi n nay Do đó, vi c xây d ng m t ph n m m tìm đ ng đi trên đi n tho i là gi i pháp t i u nh t

Ngành công nghi p smartphone hi n nay có n m n n t ng h đi u hành chính là: Windows phone, Symbian, iOS, Android, webOS g n li n v i nh ng “gã kh ng l ” trong ngành công ngh nh : Microsoft, Apple, Google,… Th tr ng ph n m m phát tri n trên

n n đi n tho i di đ ng ngày càng phong phú và đa d ng Tuy nhiên, s l ng các ph n

m m h tr ng i dùng tìm đ ng đi b ng xe buýt t i Vi t Nam l i r t khiêm t n, đ n c

ch có m t vài ph n m m nh : BusMap, BUSITUS,… Do đó, vi c xây d ng và phát tri n

m t ph n m m tìm đ ng đi b ng xe buýt trên smartphone là m t đi u r t c n thi t

Trong n m n n t ng h đi u hành trên, thì h đi u hành Windows phone 7 c a t p đoàn hàng đ u th gi i – Microsoft – m c dù là h đi u hành ra đ i sau cùng nh ng l i

có nh ng tính n ng thân thi n h n v i ng i dùng V i Windows phone, Microsoft đã phát tri n giao di n ng i dùng m i mang tên Metro – tích h p kh n ng liên k t v i các

ph n c ng và ph n m m c a hãng th ba m t cách d dàng c bi t, v i phiên b n Windows phone 8 tung ra th tr ng vào ngày 29 tháng 10 n m 2012 đ c xem là s k

th a và phát huy h n n a so v i Windows phone 7

Phiên b n Windows phone 8 đã thay th lõi ki n trúc Windows CE trên Windows phone 7 thành kernel c a Windows NT v n đ c thi t k cho Windows 8, chính vì v y làm cho ng d ng d dàng k t n i (port) gi a hai h đi u hành Ngoài ra, Windows phone

8 còn h tr CPU đa nhân, nhi u đ phân gi i, tùy bi n Start Screen, kèm phiên b n di

đ ng c a Internet Explorer 10, tích h p Nokia Maps, giao di n thân thi n h n Vi c l p trình trên Windows phone nhìn chung là s d ng ngôn ng C#, m t trong nh ng ngôn

ng l p trình hi n đ i và ph bi n nh t hi n nay, góp ph n t o thu n l i cho các nhà phát tri n Bên c nh đó, các nhà phát tri n có th t o nên các ng d ng sinh đ ng, h p d n

b ng vi c l p trình d a trên hai công ngh là Silverlight và XNA

Song, có m t th c t là, ng i dùng Windows phone 7 và 8 cho đ n th i đi m hi n

t i v n không th truy c p Google maps t trình duy t Web trên đi n tho i c a h ây

đ c xem là m t s “thi t thòi” c a ng i dùng Windows phone so v i Android và iOS,

b i s c nh tranh trong kinh doanh gi a hai “gã kh ng l ” Microsoft và Google Các

ph n m m tìm đ ng đi b ng xe buýt t i Vi t Nam trên Windows phone 8 là r t ít, đ n c

ch có m t vài ph n m m nh : BusMap,…Do đó, vi c xây d ng và phát tri n m t ng

d ng tìm đ ng đi b ng xe buýt trên đi n tho i Windows phone 8 là r t c n thi t

Trang 14

1.1.3 Lý do ch n đ tài

Xu t phát t yêu c u c p bách c a th c t đi l i và các gi i pháp công ngh hi n có chính là c s đ em xây d ng m t ng d ng tìm đ ng đi b ng xe buýt trên smartphone

ch y h đi u hành Windows phone 8, t i u theo b n tiêu chí là th i gian đi nhanh nh t, ít

t n chi phí nh t, th i gian đi b ít nh t và s tuy n đi ít nh t

 Xem thông tin c a t ng tuy n xe, danh sách t t c tr m d ng mà tuy n xe đi qua,

đ ng th i hi n th l trình di chuy n c a tuy n xe lên b n đ Google maps

 Tìm ki m tr m d ng theo hai c ch : tìm tr m d ng theo mã tr m và tìm tr m

d ng t m t v trí v i bán kính tìm ki m đ c ch đ nh b i ng i dùng

 Ch c n ng tìm đ ng v i nhi u tùy ch n phong phú: hi n th t t c k t qu tìm

đ c ho c t i u theo b n tiêu chí là th i gian đi nhanh nh t, t n chi phí ít nh t,

th i gian đi b ít nh t và s tuy n đi ít nh t

1.3 Ph ng pháp th c hi n

ng d ng đ c phát tri n trên môi tr ng Microsoft Visual Studio 2012 (đã cài b Windows Phone Software Development Kit – b công c dùng đ phát tri n ng d ng Windows phone) Bên c nh đó, giao di n c a ng d ng còn đ c thi t k b ng ph n m m Microsoft Expression Blend t o nên giao di n đ p, h p d n ng i s d ng

C s d li u c a ng d ng t p trung vào vi c qu n lý thông tin, l trình di chuy n

c a các tuy n xe buýt t i thành ph H Chí Minh, và đ c xây d ng trên môi tr ng Microsoft SQL Server 2008 đ m b o tính toàn v n và ràng bu c cho d li u

T i th i đi m th c thi, ng d ng s truy xu t thông tin t d ch v Google maps API Web services ph c v cho thao tác tìm ki m tr m d ng và tìm đ ng đi b ng xe buýt

gi a hai đi m trên b n đ

ng d ng đã hi n th c thành công vi c chuy n đ i b n đ Bing maps m c đ nh

c a Windows phone b ng b n đ Google maps t o thu n l i h n cho ng i dùng trong

vi c s d ng b n đ online

Bên c nh đó, vi c l p trình m ng b ng socket trên môi tr ng NET đã đ c s

d ng đ xây d ng server ch y trên localhost c a ng d ng nh m hi n th c tính n ng s

d ng b n đ offline

Trang 15

CH NG 2: C S LÝ THUY T 2.1 T ng quan v l p trình Windows phone 8

2.1.1 Cài đ t môi tr ng

Vi c xây d ng ng d ng Windows phone 8 đ c phát tri n trên môi tr ng Microsoft Visual Studio 2012 kèm theo b công c Windows phone SDK (Software Development Kit) ho c Microsoft Visual Studio 2013 (đã tích h p Windows phone SDK)

Giao di n ng d ng còn đ c phát tri n trên Microsoft Expression Blend

C s d li u đ c xây d ng trên môi tr ng Microsoft SQL Server 2008

2.1.2 B c c c a m t ng d ng

 Xét v t ng th , ng d ng Windows phone 8 bao g m 2 ph n:

o Các trang xaml dùng đ thi t k giao di n ng d ng

o Trang code behind (.cs) dùng đ l p trình cho các ch c n ng c a ng d ng

 Xét v thành ph n chính, m t ng d ng Windows phone 8 bao g m:

ng d ng tr c khi xu t ra file xap (dùng đ cài đ t trên đi n tho i)

o AssemblyInfo.cs: m t file c u hình khác c a ng d ng, ch a thông tin v tên và version

o WMAppManifest.xml: là m t file c u hình khác ch a thông tin v tên, icon, trang m c đ nh s b t đ u c a ng

ki m tra c u hình c a ng d ng

o App.xaml.cs: trang code-behind ch a các đo n mã c a trang App.xaml

Trang 16

o ApplicationIcon.png: hình nh đ i di n cho ng d ng khi đ c cài đ t trên đi n tho i

o Backgroung.png: nh n n c a ng d ng trên màn hình chính c a đi n tho i

o MainPage.xaml: đây chính là trang m c đ nh đ xây d ng ng d ng, ng d ng

c ng có th t o thêm nhi u trang h n n a tùy thu c vào m c đích s d ng

o MainPage.xaml.cs: đây là trang code-behind c a trang MainPage.xaml, là n i

x lý các ch c n ng, s ki n c a trang MainPage.xaml

o SplashScreenImage.png: n u ng d ng ph i m t th i gian đ load d li u thì

nh này s hi n ra, nh ng ch xu t hi n vào l n đ u khi ch y ng d ng

2.1.3 Tìm hi u XAML trong l p trình Windows phone

XAML là t vi t t t c a Extensible Application Markup Language, là ngôn ng

XAML cho phép ng i dùng thi t k giao di n c a ng d ng Windows phone trên

c hai môi tr ng là Visual Studio và Expression Blend Bên c nh đó, “s c m nh” c a XAML còn th hi n trong vi c binding c s d li u vào m t thành ph n (element) đ c

m t ngôn ng l p trình hi n đ i nh vi c x lý ngo i l , thu gom b nh t đ ng, nh ng

ki u d li u m r ng và b o m t mã ngu n…đ u có trong C#

C# ngôn ng l p trình đ n gi n, v i vi c lo i b m t vài s ph c t p và r i r m

c a nh ng ngôn ng l p trình tr c đó nh Java và C++, bao g m vi c lo i b nh ng macro, nh ng template, đa k th a, và l p c s o (virtual base class), do đó t o thu n

l i h n cho các nhà phát tri n ng d ng b ng C# C# đ n gi n vì phát tri n d a trên n n

t ng C/C++ nh ng đ c c i ti n đ làm cho ngôn ng ngày càng d ti p c n h n M t trong nh ng c i ti n đó là lo i b s d th a, ho c thêm nh ng cú pháp m i Ch ng h n

nh vi c thay th ba toán t trong C++ là ::, , và -> b ng m t toán t duy nh t là (dot)

Trang 17

C# là ngôn ng l p trình h ng đ i t ng C# h tr t t c các đ c tính c a m t ngôn ng h ng đ i t ng (Object-oriented language) bao g m s đóng gói (encapsulation), s k th a (inheritance), và tính đa hình (polymorphism)

C# là ngôn ng m nh m nh ng c ng r t m m d o C# ch b gi i h n b i kh

n ng s d ng c a ng i dùng Hi n nay, C# đ c s d ng cho nhi u d án khác nhau nh

là t o ra ng d ng x lý v n b n, ng d ng đ h a, b n tính, hay th m chí nh ng trình biên d ch cho các ngôn ng khác

C# là ngôn ng ít t khóa, ch h n 80 t khóa và m i m y ki u d li u ó là m t trong nh ng lý do làm cho C# tr thành m t trong nh ng ngôn ng đ c s d ng ph

 Góc đ 1: ki u d li u đ c phân làm hai t p h p đó là ki u d li u đã đ c xây

d ng s n (built – in) mà ngôn ng cung c p và ki u d li u do ng i l p trình t

đ nh ngh a (user – defined)

 Góc đ 2: ki u d li u bao g m ki u d li u giá tr (value) và ki u d li u tham

chi u (reference) Vi c phân chi này d a trên s khác nhau trong vi c l u ki u d

li u giá tr và tham chi u trong b nh i v i m t ki u d li u giá tr thì s đ c

l u đúng kích th c th t trong b nh đã c p phát là stack Trong khi đó thì đ a ch

c a ki u d li u tham chi u thì đ c l u trong stack nh ng đ i t ng th t s thì

l u trong b nh heap Vi c l u đ i t ng trong b nh heap r t có ích đ i v i các

đ i t ng có kích th c l n

T t c các ki u d li u xây d ng s n là ki u d li u giá tr ngo i tr các đ i t ng

và chu i Và t t c các ki u d li u do ng i dùng đ nh ngh a ngo i tr ki u d li u c u trúc đ u là ki u d li u tham chi u

Trang 18

B ng 2.1: B ng mô t m t s ki u d li u đã đ c xây d ng s n

Ki u C# S byte Ki u NET t ng ng Mô t

0-255

bool 1 Boolean Giá tr logic (true/false)

sbyte 1 sbyte S nguyên có d u (t -128 đ n 127) short 2 Int16 S nguyên có d u giá tr t -32768 đ n 32767 ushort 2 Uint16 S nguyên không d u t 0 – 65535 int 4 Int32 S nguyên có d u t –2.147.483.647 đ n 2.147.483.647

4.294.967.295

Ki u d u ch m đ ng, giá tr x p x t 3,4E-38 đ n 3,4E+38, v i 7 ch s

Có đ chính xác đ n 28 con s , đ c dùng trong tính toán tài chính, ki u này đòi h i ph i có h u t “m” hay

“M” theo sau giá tr

Ki u s nguyên có d u có giá tr trong kho ng :

-9.223.370.036.854.775.808 đ n 9.223.372.036.854.775.807

ulong 8 Uint64 S nguyên không d u t 0 đ n

0xffffffffffffffff

Trang 19

2.1.4.2.2 Bi n (variable)

Bi n là đ i l ng đ c dùng đ l u tr thông tin v các đ i t ng v i giá tr c

th , xác đ nh t i m i th i đi m trong ch ng trình Giá tr c a bi n có th đ c thay đ i

b ng phép gán (=)

Trong C#, cú pháp đ khai báo bi n có d ng nh sau:

<tên ki u> <danh sách các bi n>

Trong đó :

 <tên ki u> là m t ki u d li u h p l b t k trong C#

 <danh sách các bi n> là m t hay nhi u bi n, đ c phân cách b ng d u ‘,’

Trong tr ng h p c n thi t, có th kh i t o giá tr tr c ti p cho bi n trong câu l nh

khai báo: <tên ki u> <tên bi n> = <giá tr >;

2.1.4.2.3 H ng (constant)

B n ch t c a h ng chính là bi n nh ng giá tr c a h ng s không thay đ i trong

su t th i gian t n t i c a nó

Trong C#, khai báo h ng th ng đ c đ t trong ph n khai báo toàn c c đ u

ch ng trình, ngay sau các khai báo ti n x lý Có hai cách đ khai báo h ng:

 Dùng ch th ti n x lý: #define <tên h ng><chu i thay th >

 Dùng t khóa const: const <tên ki u><tên h ng> = <giá tr >;

2.1.4.2.4 Các c u trúc đi u khi n

H u h t các thu t toán đ u có th cài đ t b ng 3 c u trúc c b n sau:

 C u trúc tu n t : các câu l nh đ c th c hi n theo th t t trên xu ng và t trái sang ph i

 C u trúc r nhánh và l a ch n: c u trúc này dùng đ “d đoán và đáp ng” t t c các tr ng h p có th có c a thu t toán, nh m đ m b o tính đúng đ n c a ch ng trình

 C u trúc l p: l p vòng quá trình th c thi câu l nh Khi s d ng c u trúc l p, ph i

đ m b o tính d ng cho vòng l p, tránh tr ng h p quá trình l p di n ra vô t n, không có đi m d ng

Trong C#, c u trúc r nhánh đ c hi n th c thông qua câu l nh if …else… v i cú pháp nh sau:

If (< đi u ki n>) <l nh 1>;

[else <l nh 2>;]

Trong đó:

 <đi u ki n> th ng là m t bi u th c logic

Trang 20

 Ph n else là không b t bu c ph i có Tr ng h p câu l nh if không có ph n else đ c g i là câu l nh if “thi u”

 <l nh 1>, <l nh 2> có th là câu l nh đ n, ho c câu l nh ghép, ho c câu l nh

đi u khi n

Ý ngh a: n u <đi u ki n> th a (giá tr là true) thì th c hi n <l nh 1>, ng c l i thì

th c hi n <l nh 2> Nh v y, <l nh 1>, <l nh 2> đ c th c hi n thông qua giá tr đúng/sai c a <đi u ki n>

Câu l nh if…else… có th đ c m r ng thành câu l nh if… else… l ng nhau, tuy nhiên, v b n ch t câu l nh if…else là không thay đ i

Trong C#, c u trúc l a ch n đ c hi n th c thông qua câu l nh switch…case…

Case <value n>: [<l nh n>; break; ] [default: <l nh>; break; ]

}

Ý ngh a: n u giá tr c a <bi u th c đi u ki n> trùng v i value c a case nào thì câu

l nh t i case đó s đ c th c thi cho đ n khi g p l nh break thì k t thúc câu l nh switch(…) Vi c s d ng câu l nh này, đòi h i cu i m i case ph i có l nh break nh m

đ m b o tính đúng đ n cho ch ng trình

Vi c s d ng câu l nh switch(…) là m t tr ng h p bi n th c a c a câu l nh if…else… M t câu l nh switch(…) dù ph c t p đ n đâu c ng đ u có th chuy n đ i thành công sang câu l nh if…else… Nh ng, m t câu l nh if…else… ch a ch c có th chuy n đ i thành công sang câu l nh switch(…) Nguyên nhân c a s khác bi t đó là do câu l nh switch(…) ch có th xét đi u ki n m t bi u th c nh t đ nh, sau đó so sánh giá

tr c a bi u th c đó v i t ng case c th Trong khi đó, trong câu l nh if…else… bi u

th c đi u ki n có th đ c tùy bi n (ch ng h n câu l nh if ban đ u xét đi u ki n A, nh ng câu l nh if sau có th xét đi u ki n B, v.v…)

Vi c s d ng câu l nh switch(…) ho c if…else… là tùy thu c vào tình hu ng s

d ng i v i tr ng h p ch xét đi u ki n trên m t bi u th c và giá tr c a bi u th c đó

có nhi u k t qu thì s l a ch n câu l nh switch(…) trong tr ng h p này là c n thi t

Trong C#, c u trúc l p đ c hi n th c thông qua 3 c u trúc sau:

 C u trúc l p while(…) v i cú pháp:

while (< đi u ki n>) <l nh>;

Trong đó:

o <đi u ki n> là m t bi u th c logic

Trang 21

o <l nh> có th là l nh đ n, kh i l nh, ho c câu l nh đi u khi n Trong đó, có

ít nh t m t câu l nh trong <l nh> có tác d ng làm thay đ i vi c đánh giá l i

<đi u ki n> sau m i l n l p nh m đ m báo tính d ng cho vòng l p

Ý ngh a: khi nào đi u ki n còn th a thì còn th c hi n <l nh>

 C u trúc l p for(…)

Cú pháp:

for ( [<ph n kh i t o>] ; [< đi u ki n>] ; [<ph n hi u ch nh>] ) <l nh>;

Trong đó:

o <ph n kh i t o> là m t hay nhi u bi u th c gán (đ c phân cách v i nhau

b i d u ‘,’) có nhi m v kh i t o giá tr ban đ u cho các bi n

o <đi u ki n> th ng là bi u th c logic

o <ph n hi u ch nh> là m t hay nhi u bi u th c gán (đ c phân cách b i

d u ‘,’) có nhi m v thay đ i tr c a các bi n <ph n kh i t o>

o <l nh> có th là câu l nh đ n, kh i l nh, ho c câu l nh đi u khi n

Ý ngh a: khi nào đi u ki n còn th a thì còn th c hi n l nh

Trong vòng l p for(…) thì ph n kh i t o ch đ c th c hi n đúng m t l n, <ph n hi u

ch nh> có nhi m v làm thay đ i vi c đánh giá l i <đi u ki n> sau m i l n l p nh m đ m

b o tính d ng cho vòng l p Vòng l p for( ; ; ) <l nh>; là vòng l p vô h n, không có đi m

o <l nh> có th là câu l nh đ n, kh i l nh, ho c câu l nh đi u khi n Trong

<l nh> ph i có ít nh t m t câu l nh làm thay đ i vi c đánh giá l i đi u ki n sau

m i l n l p nh m đ o b m tính d ng cho vòng l p

Ý ngh a: th c hi n <l nh> cho đ n khi <đi u ki n> không còn th a

Vi c s d ng ba c u trúc l p trên có nh ng đi m chung, đi m riêng sau:

 i m chung:

o u l p vòng th c thi m t s câu l nh th a đi u ki n

o Trong các câu l nh th c thi m i l n l p, ph i có ít nh t m t câu l nh làm thay

đ i l i vi c đánh giá l i đi u ki n l p nh m đ m b o tính d ng cho vòng l p

Trang 22

o C u trúc l p while (…) và for (…) có th đ c chuy n đ i cho nhau

i m riêng:

o Ph n <l nh> c a vòng l p do…while (…) luôn đ c th c hi n ít nh t m t l n

do <đi u ki n> đ c ki m tra sau khi th c hi n l nh

o Ph n <l nh> c a vòng l p while (…) và for (…) có th không đ c th c hi n

l n nào, do <đi u ki n> đ c xét tr c khi th c hi n l nh

Trong Windows phone, vi c xây d ng các class có ý ngh a đ c bi t g n li n v i c

s d li u (CSDL) c a ng d ng Theo đó, m i b ng (table) trong CSDL s ng v i m t class trong C# Các bi n thành viên c a class chính là các c t (field) trong CSDL Các

ph ng th c c a class là các hàm giao ti p v i CSDL (ch ng h n nh ph ng th c l y thông tin, c p nh t thông tin,…)

th nhìn th y và s d ng các bi n thành viên hay nh ng ph ng th c bên trong l p đó

m c đ nào Danh sách các thu c tính và gi i h n truy c p đ c th hi n b ng sau:

B ng 2.2: B ng tóm t t các thu c tính truy c p c a m t l p trong C#

Thu c tính Gi i h n truy c p

public

Không h n ch Nh ng thu c tính đ c đánh d u là public đ c dùng b t kì ph ng th c nào c a l p bao g m c nh ng l p khác

private Thu c tính trong l p A đ c đánh d u là private thì ch nh ng

Trang 23

LINQ là t vi t t t c a Language Integrated Query, là ngôn ng tích h p truy v n,

ch có t phiên b n Visual Studio 2008 và NET Framework 3.5 tr v sau

LINQ To SQL là m t ph n c a LINQ cho phép mô hình hóa c s d li u (CSDL) thành các l p NET, sau đó ng i dùng có th truy v n c ng nh c p nh t CSDL b ng ngôn ng LINQ LINQ to SQL h tr đ y đ transaction, view và các stored procedure (SP) ng th i, c ng cung c p m t cách d dàng đ thêm kh n ng ki m tra tính h p l

c a d li u và các quy t c vào trong mô hình d li u

So v i ADO.NET, LINQ cung c p m t cách ti p c n m i, d hi u trong vi c l p trình v i CSDL Vi c s d ng LINQ đ c k t h p v i file DataContext ây là file ch a

mô hình t ch c CSDL, có đ c t vi c ánh x CSDL

Hình 2.1: Mô hình ho t đ ng c a LINQ to SQL

Trong Windows Phone, LINQ to SQL đ c s d ng đ l p trình v i d li u local (SQL Database) c a ng d ng

Trang 24

2.1.5.1 L y thông tin t CSDL:

Cú pháp đ l y thông tin t CSDL b ng ngôn ng LINQ nh sau:

<DataContext name> db = new <DataContext name>();

var <tên bi n 1> = from <n c danh> in db.<tên b ng>

[where < đi u ki n>]

select <n c danh>; | select new { <n c danh>.<tên field>[,…]};

Trong đó: <tên bi n 1> là danh sách các k t qu nh n đ c t truy v n,

<DataContext name> là tên c a file DataContext

2.1.5.2 C p nh t thông tin CSDL:

c p nh t CSDL, tr c tiên ta l y thông tin c a đ i t ng c n c p nh t, thi t l p

l i giá tr và ghi l i vào CSDL thông qua hàm SubmitChanges()

<DataContext name> db = new <DataContext name>();

<tên b ng><tên bi n> = db.<tên b ng>.Single(<đi u ki n>);

<tên bi n>.<thu c tính c n thay đ i> = <giá tr thay đ i>;

[<tên bi n>.<thu c tính c n thay đ i> = <giá tr thay đ i>;………….]

<DataContext name> db = new <DataContext name>();

<TableName><tên đ i t ng> = new <TableName>();

<tên đ i t ng>.<tên thu c tính 1> = <giá tr 1>;

[<tên đ i t ng>.<tên thu c tính 2> = <giá tr 2>; ……… ]

db.<TableNames>.Add(<tên đ i t ng>);

db.SubmitChanges();

Trang 25

2.1.5.4 Xóa d li u ra kh i CSDL

xóa d li u ra kh i CSDL, ta c n ph i xác đ nh các đ i t ng mu n xóa, sau đó remove đ i t ng ra kh i l p ch a nó, và dùng hàm SubmitChanges() đ l u vào CSDL

<DataContext name> db = new <DataContext name>();

var <tên bi n 1> = from <n c danh> in db.<TableName>

<DataContext name> db = new <DataContext name>();

var <tên bi n> = db.<Tên th t c>( [<tham s 1> [, <tham s 2> ……….]]);

Trong đó: tên bi n ch a k t qu có đ c t th t c v a g i

Trang 26

2.2 S d ng GPS và A-GPS trên Windows phone

2.2.1 T ng quan v GPS

GPS là t vi t t t c a Global Positioning System có ngh a là h th ng đ nh v toàn

c u, dùng đ xác đ nh v trí trên trái đ t thông qua các v tinh nhân t o, do B Qu c phòng M thi t k , xây d ng, v n hành và qu n lý

 Ph n ki m soát: có ch c n ng ki m soát các v tinh đi đúng h ng trên qu đ o và thông tin th i gian chính xác Có t t c 5 tr m ki m soát đ c đ t r i rác trên trái

đ t, trong đó có 4 tr m ho t đ ng t đ ng và 1 tr m làm nhi m v ki m soát trung tâm B n tr m t đ ng nh n tín hi u liên t c t v tinh và g i d li u v tr m trung tâm T i đây, d li u s đ c s a l i cho đúng và k t h p v i 2 anten khác đ g i

l i thông tin cho các v tinh

 Ph n s d ng: là các thi t b nh n tín hi u v tinh GPS và ng i s d ng các thi t

b này

GPS ho t đ ng theo c ch sau:

Các v tinh GPS bay vòng quanh Trái t hai l n trong m t ngày theo m t qu

đ o r t chính xác và phát tín hi u có thông tin xu ng Trái t Các máy thu GPS nh n thông tin này và b ng phép tính l ng giác tính đ c chính xác v trí c a ng i dùng V

b n ch t, các máy thu GPS s so sánh th i gian tín hi u đ c phát đi t v tinh v i th i gian nh n đ c chúng sai l nh v th i gian này cho bi t máy thu GPS cách v tinh bao xa K t h p v i nhi u kho ng cách đo đ c t nhi u v tinh, máy thu có th tính

đ c v trí c a ng i dùng và hi n th lên b n đ

2.2.2 T ng quan v A-GPS

A-GPS là t vi t t t c a Assisted Global Positioning System, là h th ng đ nh v s

d ng thêm các thông tin tr giúp thông tin GPS

H u h t các thi t b c m tay GPS hi n nay (nh đi n tho i di đ ng, PDA,…) đ u

ng d ng công ngh A-GPS (Assisted GPS) B i vì, trong nhi u đi u ki n th c t , vi c truy n d n tín hi u GPS gi a v tinh và thi t b nh n trên m t đ t ho t đ ng r t kém ho c

th m chí không th ho t đ ng, nh t là trong các thành ph l n nhi u v i nhà cao t ng

ho c trong không gian kín Và do đó, A-GPS chính là gi i pháp cho v n đ này

A-GPS ho t đ ng theo c ch sau :

Thay cho vi c truy n tín hi u đ n v tinh, A-GPS k t n i tín hi u qua m t “tr m trung chuy n”, đó là m t h th ng máy ch h tr H th ng trung gian này xác đ nh v trí

Trang 27

c a thi t b so v i các tr m thu phát sóng c a các m ng đi n tho i trung gian trong khu

v c và t đó tính toán ra v trí trên h th ng GPS

Hình 2.2: Cách th c ho t đ ng c a A-GPS

Có th nói, n u không có s h tr c a các tr m trung chuy n qua m ng đi n tho i

di đ ng này, thi t b A-GPS v n có th nh n đ c tín hi u t v tinh nh ng không có kh

Ngu n l y thông

tin

Tín hi u t các v tinh cùng v i tín hi u t các c t BTS (tr m thu phát sóng di đ ng) c a nhà cung

Th ng m t hàng phút đ xác đ nh t a đ , vì ph i m t

ch ng đó th i gian m i có

th k t n i đ n đ c t 4 v tinh tr lên Và thi t b ph i khu v c thoáng, không b che ch n

M c đ tin c y T a th ng có sai s nhi u h n GPS đ xác đ nh b i A-GPS T a th ng có chính xác cao đ xác đ nh b i GPS

Các thi t b dùng i n tho i di đ ng Các thi t b tô, máy bay, tàu bi n đ nh v trên ô

Trang 28

2.2.3 S d ng GPS trên Windows phone

Trên môi tr ng l p trình, Windows phone 8 h tr vi c l y thông tin v trí c a

đi n tho i GPS thông qua hai l p (class) sau:

 GeoCoordinateWatcher class thu c namespace System.Device.Location

 Geolocator class thu c namespace Windows.Devices.Geolocation

Hai class trên có nh ng đi m chung, đi m riêng sau:

2.2.3.1 i m chung

C hai class trên đ u h tr cho vi c l y thông tin v trí c a đi n tho i GPS thông qua c hai cách:

 L y thông tin v trí c a đi n tho i t i th i đi m yêu c u

 L y thông tin v trí c a đi n tho i m t cách liên t c

2.2.3.2 i m riêng

B ng 2.4: B ng so sánh GeoCoordinateWatcher class và Geolocator class

GeoCoordinateWatcher class Geolocator class Namespace System.Device.Location Windows.Devices.Geolocation

Ngu n g c Có t Windows phone 7 Ch có Windows phone 8

- Thu c tính Position ch a thông tin v trí c a đi n tho i

- H tr truy xu t thông tin

ch đ n n (background)

- Không có ph ng th c start(), stop(), ch c n khai báo

đ i t ng thu c l p

- GetGeopostionAsync(): l y thông tin v trí c a đi n thoai Trong ng d ng c a đ tài, vi c truy xu t thông tin v trí đi n tho i GPS đ c th c

hi n thông qua Geolocator class

Trang 29

2.2.3.3 S d ng Geolocation class

s d ng Geolocation class, ta c n ph i:

 Khai báo namespace Windows.Devices.Geolocation

 B t ID_CAP_LOCATION trong file WMAppManifest.xml c a ng d ng

L p Geolocation cung c p cho ng i dùng truy xu t thông tin v trí c a đi n tho i GPS thông qua hai cách sau:

 Truy xu t thông tin v trí t i th i đi m yêu c u (single-shot location)

 Truy xu t liên t c thông tin v trí đi n tho i (continuously location)

Vi c s d ng cách truy xu t thông tin nào là tùy thu c vào yêu c u c a t ng ng

d ng c th Tuy nhiên, đ i v i các ng d ng ch yêu c u thông tin GPS c a đi n tho i t i

m t th i đi m nào đó thì cách 1 là s l a ch n t t nh t, còn đ i v i các ng d ng yêu c u

c p nh t liên t c v trí c a đi n tho i thì nên ch n cách 2, tuy nhiên vi c s d ng cách này

s tiêu t n n ng l ng pin c a đi n tho i nhi u h n

GetPositionAsync(Timespan, Timespan) đ l y v trí c a đi n tho i Các ph ng

th c trên có th s d ng k t h p v i t khóa await (s d ng await đòi h i ph ng

th c ch a nó ph i khai báo async) phía tr c đ “ch ” các ph ng th c này hoàn

t t nh m gán thông tin k t qu cho đ i t ng thu c l p GeoPosition

2.2.3.3.2 Continuously location

truy xu t liên t c thông tin v trí c a đi n tho i, ta th c hi n các b c sau:

 B c 1: kh i t o m t đ i t ng thu c l p Geolocation

 B c 2: thi t l p các thông s tùy ch n và khai báo các s ki n cho đ i t ng:

o DesiredAccuracy: bao g m 2 thông s Default (m c đ nh) và High, dùng đ

thi t l p đ chính xác cho vi c truy xu t thông tin v trí GPS, trong đó:

 Default: s d ng Wi-Fi ho c các tháp tín hi u di đ ng đ xác đ nh v trí, tùy thu c vào s s n có c a các ngu n

Trang 30

 High: s d ng b nh n GPS đ xác đ nh v trí, cho đ chính xác cao h n ch

đ m c đ nh (default), tuy nhiên có th làm nh h ng đ n hi u su t ho t

 StatusChanged là s ki n đ c phát sinh khi có s thay đ i v tình tr ng truy

xu t thông tin v trí c a đi n tho i v i các giá tr sau:

 PositionStatus.Disable: cho bi t ng d ng không đ c phép s d ng thông tin GPS ho c GPS ch a đ c m

 PositionStatus.Initializing: đang chu n b cho vi c truy xu t thông tin v trí

đi n tho i

 PositionStatus.Nodata: không truy xu t đ c thông tin v trí

 PositionStatus.Ready: truy xu t thành công, có d li u tr v

 PositionStatus.NotAvailable: c nh báo này không xu t hi n trong ng d ng Windows phone, ch xu t hi n trong ng d ng Windows desktop khi yêu

c u ph n c ng không đáp ng đ c

 PositionChanged là s ki n đ c phát sinh khi có s thay đ i v v trí c a thi t

b GPS, trong s ki n này tham s PositionChangedEventArgs ch a các thông tin liên quan v v trí c a thi t b

Trang 31

2.3 S d ng Google maps trong ng d ng Windows phone 8

2.3.1 Gi i thi u control Maps trong Windows phone 8

Trong môi tr ng l p trình, Windows phone 8 h tr hai đi u khi n Maps:

 i u khi n Maps có t h đi u hành Windows phone 7

 i u khi n Maps m i, vi t l i t Bing maps c a Windows phone 7

Hai đi u khi n Maps có nh ng đi m chung, đi m riêng sau:

2.3.1.1 i m chung

 B n đ không h p d n đ c ng i dùng

 D li u c a c hai đi u khi n Maps này là không nhi u, gây khó kh n cho ng i dùng trong vi c tìm đ ng đi

Do đó, đòi h i c n ph i có m t gi i pháp đ chuy n đ i các đi u khi n Map m c

đ nh trong Windows phone thành các b n đ có d li u nhi u h n, phong phú h n nh m

t o thu n l i cho ng i dùng trong vi c s d ng

 i u khi n Maps th 2 (m c đ nh trong Windows phone 8) vi t l i t Bing Maps

c a Windows phone 7, d a trên Nokia’s Here Maps nh ng không cho phép ng i dùng thay đ i l p c s c a b n đ , và do đó không th chuy n đ i đi u khi n Maps này sang m t đi u khi n Map m i theo yêu c u c a ng i dùng đ c

Vì v y, ng d ng đã ch n đi u khi n Bing maps có t Windows phone 7 đ hi n

th b n đ , do kh n ng m r ng c a Bing maps trong vi c chuy n đ i sang m t đi u khi n Maps khác

2.3.2 So sánh Bing maps và Google maps

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

Trang 32

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

Hình 2.3: So sánh Bing maps v i Google maps

Trang 33

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ý

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 :

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

Trang 34

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

Trang 35

2.4 L p trình client – server trên NET

2.4.1 T ng quan v l p trình client – server

2.4.1.1 Socket

Socket là m t b API (Application Programming Interface) cung c p các ph ng

th c đ giao ti p thông qua m ng Trong môi tr ng NET, h th ng cung c p hai namespace là System.Net và System.Net.Sockets ch a các l p h tr trong vi c l p trình

m ng v i socket

 Có hai lo i socket:

- Stream socket: d a trên giao th c TCP (Tranmission Control Protocol), vi c

truy n d li u ch th c hi n gi a hai quá trình khi đã đ c thi t l p k t n i Giao th c

này đ m b o d li u đ c truy n đ n n i nh n m t cách đáng tin c y, đúng th t nh vào c ch qu n lý lu ng l u thông trên m ng và c ch ch ng t c ngh n

- Datagram socket: d a trên giao th c UDP (User Datagram Protocol), vi c truy n

d li u không yêu c u có s thi t l p k t n i gi a hai quá trình Vi c truy n d li u

theo giao th c UDP không đ c tin c y, có th không đúng trình t và l p l i Tuy nhiên,

do giao th c này không yêu c u thi t l p k t n i nên không c n các c ch ph c t p và do

đó t c đ truy n t i d li u s nhanh h n giao th c TCP, thích h p v i các ng d ng nh : chat, game,…

Trong ph m vi đ tài này, em ch xét vi c xây d ng ng d ng client – server ch

đ có k t n i (TCP) đ phù h p v i yêu c u s d ng

2.4.1.2 Port

Port là m t c ng k t n i, giúp xác đ nh duy nh t m t ti n trình (process) trên m t

máy trong m ng M i ng d ng trên server s đ c đính kèm m t s hi u port c th v i

ý ngh a: server s “đ i” client port nào, khi đó client mu n giao ti p v i server thì ph i

g i yêu c u đ n đúng port t ng ng c a server

2.4.1.3 Mô hình client – server theo giao th c TCP

 M t ng d ng client – server theo giao th c TCP ho t đ ng theo c ch sau:

- Server: có nhi m v l ng nghe, ch đ i k t n i t client (trên đ a ch IP v i m t

s hi u port đã đ c quy đ nh s n) Khi client g i yêu c u đ n server thì server s nh n

d li u t client, x lý và g i tr k t qu v cho client

- Client: là ng d ng đ c “ph c v ”, khi c n truy xu t d li u t server, client s

g i yêu c u và ch đ i k t qu t server

Trang 36

Hình 2.4: Mô hình chung c a m t ng d ng client-server có k t n i (TCP)

 Quá trình trên đ c hi n th c thông qua các giai đo n sau:

- Giai đo n 1: server t o socket, gán s hi u c ng (port) và “ch ” k t n i t client

Trong đó:

- socket(): server t o Socket

- bind(): gán s hi u (port) cho socket

- listen(): server l ng nghe k t n i t client

trên đ a ch IP c a server và s hi u port

 Server s n sàng ph c v client

Trang 37

- Giai đo n 2: client t o Socket, g i yêu c u k t n i đ n server

Trong đó:

o Phía Client:

socket(): client t o socket

connect(): client g i yêu c u đ n server (thông qua đ a ch IP và s hi u port)

o Phía Server:

accept(): server ch p nh n k t n i c a client, khi đó m t kênh giao ti p o

đ c hình thành, client và server có th trao đ i thông tin thông qua kênh o này

- Giai đo n 3: client và server trao đ i thông tin v i nhau

o Phía Server:

Sau khi ch p nh n yêu c u k t n i t client, server thông th ng s th c

hi n l nh read() và “ngh n” cho đ n khi có yêu c u (Request Message) t client

g i đ n Sau đó, server s phân tích và th c thi yêu c u, k t qu s đ c tr v client b ng l nh write()

Trang 38

- Giai đo n 4: k t thúc phiên làm vi c

Kênh o s b xóa khi client và server đóng Socket b ng l nh close()

2.4.2 Xây d ng Server h tr s d ng b n đ offline

h tr cho vi c s d ng b n đ offline, server s đ c xây d ng kèm v i ng

o Maps: là th m c ch a ngu n nh đ c l u trong ng d ng

o x, y, zoomLevel: là các thông s c a hàm GetUri

 Server: đ m nh n vai trò nh n yêu c u g i đ n t client Sau đó, server s ki m

yêu c u k t n i đ n: n u đó là yêu c u truy xu t thông tin (HTTP GET), server

s tìm trong ngu n nh Google maps đã đ c l u trong ng d ng đ tìm ra file

Trang 39

nh th a các thông s x, y, zoomLevel c a hàm GetUri, tr v cho Bing maps

đ hi n th lên cho ng i dùng

Hình 2.5: Mô hình ho t đ ng c a server h tr s d ng b n đ offline

 B n tin yêu c u HTTP bao g m các thông tin sau:

B n tin yêu c u HTTP theo mã đ nh d ng ASCII g m 3 thành ph n chính: dòng yêu c u (l nh GET, POST, HEAD), các dòng header và k t thúc thông đi p B n tin yêu

c u HTTP client có th kèm các thông tin mà client mong mu n trao đ i v i server Trong hàm GetUri: các thông s x, y, zoomLevel ch ra r ng client mu n truy xu t file

nh trong th m c Maps c a server

Hình 2.6: C u trúc c a m t b n tin yêu c u HTTP

Trang 40

 B n tin tr l i HTTP:

B n tin tr l i HTTP g m 3 thành ph n chính: dòng tr ng thái (ch a mã tr ng thái), các dòng tiêu đ và d li u đ tr v cho client Mã tr ng thái đ c ghi t i dòng đ u tiên trong thông đi p c a server tr v cho client v i các tr ng h p nh sau:

Trong môi tr ng l p trình Windows phone trên Net, vi c xây d ng server đ c

hi n th c thông qua đ i t ng thu c l p StreamSocketListener (thu c namespace

Windows.Networking.Sockets) L p StreamSocketListener cung c p thu c tính

BindServiceNameAsync(string name) đ gán s hi u port cho server và s ki n ConnectionReceived đ ti p nh n k t n i đ n t client Trong s ki n ConnectionReceived, ta có th xây d ng các ph ng th c nh ki m tra b n tin yêu c u HTTP client, ph n h i k t qu v client,…

Hình 2.7: C u trúc c a m t b n tin tr l i HTTP

Hình 2.8: Danh m c tr ng thái trong thông đi p server g i client

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

HÌNH ẢNH LIÊN QUAN

Hình 2.3: So sánh Bing maps v i Google maps. - 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
Hình 2.3 So sánh Bing maps v i Google maps (Trang 32)
Hình 2.4: Mô hình chung c a m t  ng d ng client-server có k t n i (TCP) - 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
Hình 2.4 Mô hình chung c a m t ng d ng client-server có k t n i (TCP) (Trang 36)
Hình 2.5: Mô hình ho t  đ ng c a server h  tr  s  d ng b n  đ  offline - 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
Hình 2.5 Mô hình ho t đ ng c a server h tr s d ng b n đ offline (Trang 39)
Hình 2.9: Ki n trúc Web service - 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
Hình 2.9 Ki n trúc Web service (Trang 41)
Hình 2.13: S   đ  11 b c gi i mã t a  đ - 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
Hình 2.13 S đ 11 b c gi i mã t a đ (Trang 62)
Hình 2.7: L c  đ  xây d ng ph ng th c gi i mã t a  đ . - 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
Hình 2.7 L c đ xây d ng ph ng th c gi i mã t a đ (Trang 63)
Hình 3.4: Giao di n trang ch  tr c và sau khi ch n tuy n xe - 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
Hình 3.4 Giao di n trang ch tr c và sau khi ch n tuy n xe (Trang 70)
Hình 3.11: Giao di n hi n th  danh sách tr m d ng lên b n  đ - 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
Hình 3.11 Giao di n hi n th danh sách tr m d ng lên b n đ (Trang 74)
Hình 3.15: Hi n th  v  trí ng i dùng lên b n  đ - 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
Hình 3.15 Hi n th v trí ng i dùng lên b n đ (Trang 77)
Hình ch c n ng tìm ki m tr m d ng thông qua mã tr m - 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
Hình ch c n ng tìm ki m tr m d ng thông qua mã tr m (Trang 79)
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 v i bán kính - 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
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 v i bán kính (Trang 80)
Hình 3.20: Xác  đ nh v  trí tìm tr m d ng - 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
Hình 3.20 Xác đ nh v trí tìm tr m d ng (Trang 82)
Hình 3.21: Giao di n hi n th  k t qu  tìm tr m d ng - 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
Hình 3.21 Giao di n hi n th k t qu tìm tr m d ng (Trang 83)
Hình 3.23 : Xác  đ nh  đ i m b t  đ u và k t thúc b ng cách nh p  đ a ch  tr c ti p. - 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
Hình 3.23 Xác đ nh đ i m b t đ u và k t thúc b ng cách nh p đ a ch tr c ti p (Trang 86)
Hình 3.25: Giao di n trang download b n  đ - 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
Hình 3.25 Giao di n trang download b n đ (Trang 92)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w