Google maps API Webservices

Một phần của tài liệu 0947XÂ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 (Trang 43)

CH NG 2 : CS LÝ THUY T

2.6 Google maps API Webservices

2.6.1 Cú pháp s d ng

Trên n n Windows phone, vi c s d ng Google maps API đ c th c hi n thông qua các c ng Web services nh m truy v n d li u c a Google. Các d ch v này đ c thi t k đ s d ng k t h p v i m t b n đ .

Các d ch v Web services s d ng các yêu c u HTTP đ n đ ng d n (URL) c th , qua các thông s URL nh đ i s cho các d ch v . K t qu tr v là m t t p tin theo cú pháp XML ho c JSON.

Cú pháp đ s d ng Google maps API Web services có d ng:

http://maps.googleapis.com/maps/api/service/output?parameters

Trong đó:

 Service: đ i di n cho tên c a m t d ch v c th (ch ng h n: geocode, direction,…)  Output: đ i di n cho lo i t p tin tr v c a k t qu truy v n (có th là t p tin theo

đnh d ng XML ho c JSON).

 Parameters: đ i di n cho các thông s (b t bu c và tùy ch n) kèm theo t ng service c th .

Bên c nh đó, ng d ng c ng có th s d ng Google maps API Web services thông qua giao th c HTTPS theo cú pháp:

https://maps.googleapis.com/maps/api/service/output?parameters

HTTPS đ c khuy n khích cho các ng d ng bao g m các d li u ng i dùng nh y c m, ch ng h n nh v trí c a ng i dùng đ c g i đi nh là m t tham s trong yêu c u.

2.6.2 X lý k t qu tr v

Sau khi g i yêu c u thơng qua Web service, thì h th ng server c a Google s tr v t p tin k t qu theo đnh d ng XML ho c JSON.

XML và JSON đ u là các t p tin dùng đ trao đ i d li u. Vi c s d ng XML ho c JSON đ nh n k t qu tr v là tùy thu c vào tình hu ng s d ng. V i cùng m t d li u thì t p tin JSON có dung l ng nh h n, th i gian truy n t i nhanh h n, d phân tích h n so v i XML. Các đ c tính trên c a JSON phù h p v i vi c nh n ph n h i và phân tích k t qu tr v t m t ng d ng trên n n đi n tho i.

2.6.2.1. Cú pháp c a t p tin JSON

T p tin JSON là m t v n b n thu n (khơng có đnh d ng: màu s c, c ch ,…) theo mơ hình phân c p (c u trúc cây) bao g m m t t p h p các ph n t con theo cú pháp JavaScript:

Ví d : “first name” : “Tài”

 D li u phân cách v i nhau b ng d u ph y.

Ví d : { “first name” : “Tài” , “last name” : “Lê H u” }  M i đ i t ng n m trong c p ngo c nh n ‘{}’.

 Các đ i t ng “con” n m trong d u ngo c vuông ‘[]’ c a đ i t ng “cha”. Ví d :

{ “sinhvien”: [{“first name” : “Tài” , “last name” : “Lê H u” } ,

{ “first name” : “Huy” , “last name” : “Hu nh Ng c” } ]

}

2.6.2.2. Phân tích t p tin JSON

Cú pháp s d ng các thành ph n c a t p tin JSON nh sau:

<Tên t p tin JSON>[“Tên thành ph n cha”][“Tên thành ph n con”]…

Ví d : trong t p tin JSON (t m g i là JSON_Result) tr v sau khi th c hi n truy v n Google Geocoding (tìm đa ch t t a đ ). có th l y đ c k t qu đa ch , ta th c hi n sau l nh sau:

JSON_Result["results"].ElementAt(0)["formatted_address"]

Do k t qu tr v có th ch a nhi u result, nên ElementAt(0): l y ph n t result đ u tiên.

T p tin JSON tr v t Google maps API Web services bao g m hai thành ph n:  Status : cho bi t tình tr ng c a yêu c u.

 Results (trong Google Geocoding, Reverse Geocoding), routes (trong Google Direction), predictions (trong Google Autocomplete): ch a các k t qu tr v sau khi yêu c u.

Các "status" có th ch a các giá tr sau:

 "OK": ch ra r ng khơng có l i x y ra, có k t qu tr v .

 "ZERO_RESULTS": khơng có l i x y ra, nh ng khơng có k t qu tr v .  "OVER_QUERY_LIMIT": ch ra r ng đang v t h n m c s l n yêu c u.  "REQUEST_DENIED" ch ra r ng yêu c u đã b t ch i, có th là vì thi u

m t thông s sensor.

 "INVALID_REQUEST": th ng ch ra r ng các truy v n (address ho c lat/lng) sai, ho c thi u.

 “UNKNOWN_ERROR”: ch ra r ng yêu c u không th th c hi n đ c do l i máy ch . Yêu c u có th thành cơng n u c g ng th l i các l n sau.

2.6.3 Google Direction API Service 2.6.3.1. Gi i thi u 2.6.3.1. Gi i thi u

Google Direction API là m t d ch v tính tốn h ng di chuy n gi a các đa đi m, s d ng m t yêu c u HTTP. D ch v này h tr cho nhi u lo i hình v n t i, ch ng h n nh : đi l i b ng ph ng ti n công c ng (xe buýt), lái xe (xe h i, xe taxi), lái xe đ p và đi b .

có th s d ng d ch v này, đòi h i c n ph i ch ra đi m b t đ u, và đi m k t thúc c a l trình, có th là m t chu i (ch ng h n “37 Ngô T t T , H Chí Minh, Vi t Nam”) ho c m t t a đ đa lý (v đ , kinh đ ).

2.6.3.2. Gi i h n s d ng

N u ng d ng s d ng tài kho n mi n phí đ truy v n d li u c a Google, thì s có gi i h n sau:

 2.500 yêu c u truy v n Google Direction m i ngày.

 Ch đ c phép s d ng t i đa 8 đi m chuy n h ng (waypoints) trong m i yêu c u.

Tr ng h p, Google maps API dành cho ng i s d ng có tr phí s có gi i h n s d ng Google Direction cao h n:

 100000 yêu c u h ng d n l trình m i ngày.

 Cho phép 23 đi m chuy n h ng trong m i l n yêu c u.

Tuy nhiên, m i l n yêu c u s d ng Google Direcion s đ c tính là 4 yêu c u, các đi m chuy n h ng (waypoints) không đ c dùng cho h ng d n tìm đ ng đi b ng xe buýt.

2.6.3.3. Cú pháp

Khi m t yêu c u Direction API đ c g i đi có d ng nh sau:

http://maps.googleapis.com/maps/api/directions/output?parameters

Bên c nh đó, đ s d ng Direction API trên HTTPS, ta s d ng cú pháp:

https://maps.googleapis.com/maps/api/directions/output?parameters

Trong đó: output có th là JSON ho c XML.

2.6.3.4. Các tham s

Ng i s d ng có th truy n nhi u tham s trong yêu c u, các tham s cách nhau b i kí t “&”. Danh sách các tham s và giá tr đ c li t kê nh sau:

Các tham s b t bu c ph i có trong yêu c u:

 Origin ( i m xu t phát): a ch d ng chu i ho c giá tr c a v đ / kinh đ mà t đó có th tính tốn h ng di chuy n. Khi đa ch là m t chu i, các d ch v

Directions s mã hóa chu i và chuy n đ i nó thành m t v đ / kinh đ đ tính tốn h ng di chuy n.

 Destination ( i m k t thúc): a ch d ng chu i ho c giá tr c a v đ / kinh đ mà t đó có th tính tốn h ng di chuy n. Khi đa ch là m t chu i, các d ch v Directions s mã hóa chu i và chuy n đ i nó thành m t v đ / kinh t a đ đ tính tốn h ng di chuy n

 Sensor: Cho bi t li u có hay khơng u c u tìm h ng di chuy n đ n t m t thi t b c m ng v trí. Giá tr này ph i là true hay false.

Các tham s tùy ch n:

 Mode (m t đnh là driving ): Ch đnh ph ng th c v n t i đ c s d ng đ tính tốn h ng di chuy n (có th là: driving, walking, bicycling hay transit). N u thi t l p ch đ "transit", thì c n ph i xác đnh thêm tham s ho c là departure_time (th i gian xu t phát) hay là arrival_time (th i gian đ n).

 Waypoints: Ch đ nh các c t m c. Waypoints đ c s d ng đ thay đ i l trình b ng cách ch đnh các v trí c th mà l trình b t bu c ph i đi qua. M t waypoint đ c xác đnh ho c là m t t a đ g m v đ / kinh đ ho c m t đa ch đã đ c mã hóa. Waypoints ch h tr cho lái xe (driving), đi b (walking) hay lái xe đ p (bicycling), không h tr cho lo i hình đi l i b ng xe buýt (transit).

 Avoid: Tính n ng ch đnh các tuy n đ ng nên tránh. Hi n nay, thông s này h tr hai đ i s sau: tolls tránh các tuy n đ ng có thu phí/c u và highways tránh các tuy n đ ng cao t c.

 Region: Các mã vùng, mi n qu c gia g m hai kí t .

 Units: Xác đ nh các đ n v h th ng đ s d ng khi hi n th k t qu .

 Departure_time: Xác đ nh th i gian mong mu n kh i hành theo giây tính t n a đêm ngày 01/01/1970 (theo chu n gi qu c t UTC) cho đ n th i đi m yêu c u.  Arrival_time: xác đnh th i gian mong mu n đ n m t đa đi m nào đó theo giây

tính t n a đêm ngày đêm ngày 01/01/1970 (theo chu n gi qu c t UTC).

 Tr ng h p ng i dùng yêu c u truy v n m t transit direction, thì ph i khai báo m t trong hai thông s tùy ch n là departure_time ho c arrival_time.

2.6.3.5. Phân tích k t qu tr v

K t qu tr v t t p tin JSON g m 2 thành ph n:

 Status: cho bi t tình tr ng k t qu sau khi th c thi yêu c u.

 Routes: danh sách các l trình đi t đi m xu t phát đ n đi m k t thúc. M i “route” đ i di n cho m t l trình tìm th y bao g m 2 thành ph n chính:

 Legs []: ch a m t danh sách các leg (m i leg đ i di n cho t ng con đ ng trong l trình). Tr ng h p, yêu c u truy v n là transit direction thì Legs [] ch ch a m t ph n t leg đ i di n cho con đ ng đi t đi m b t đ u đ n đi m k t thúc.

 Overview_polyline: ch a thành ph n points (đ i di n cho m t dãy các t a đ đã đ c mã hóa c a l trình đi t đi m b t đ u đ n đi m k t thúc).

M i “leg” bao g m các thành ph n sau:

 Steps []: ch a danh sách các step (m i step đ i di n cho t ng đo n đ ng trong con đ ng leg).

 Distance: kho ng cách c a leg. Distance g m 2 thành ph n: value (giá tr c a kho ng cách tính b ng mét) và text (kho ng cách kèm theo đ n v mà ng i dùng có th hi u đ c).

 Duration: th i gian đi cho m i leg. Duration g m 2 thành ph n: giá tr c a th i gian tính theo giây) và text (th i gian kèm theo đ n v mà ng i dùng có th hi u đ c).

 Departure_time: th i gian kh i hành c a leg (ch có trong yêu c u transit direction).

 Arrival_time: th i gian k t thúc c a leg (ch có trong yêu c u transit direction).  Start_address: đ a ch đi m b t đ u c a leg

 End_address: đa ch đi m k t thúc c a leg.

 Start_location: đa ch đi m b t đ u c a leg theo t a đ (lat/lng).  End_location: đ a ch đi m k t thúc c a leg theo t a đ (lat.lng).

M i “step” ch a các thành ph n chính sau:  Html_instructions: ch d n đ ng đi cho step.

 Start_location: đa ch đi m b t đ u c a leg theo t a đ (lat/lng).  End_location: đ a ch đi m k t thúc c a leg theo t a đ (lat.lng).

 Distance: kho ng cách c a m i step (g m 2 thành ph n: value và text).  Duration: th i gian đi cho m i step (g m 2 thành ph n: value và text).

 Travel_mode: đ i di n cho hình th c v n t i, n u ng i dùng th c hi n m t transit direction thì travel mode nh n 2 giá tr là “WALKING” ho c “TRANSIT”. N u travel_mode là “WALKING” thì m i step s bao g m m t danh sách các sub steps. N u travel_mode là “TRANSIT” thì m i step ch a m t transit_details v i các thành ph n sau:

o Departure_stop và arrival_stop: cho bi t thông tin v tr m d ng xu t phát và k t thúc trong đo n đ ng step. Thông tin v tr m d ng bao g m hai thành ph n: name (đa ch c a tr m d ng) và location (v trí (v đ , kinh đ ) c a tr m d ng).

o Arrival_time và departure_time: cho bi t th i gian kh i hành và k t thúc c a tuy n xe trên đo n đ ng step. Thông tin v th i gian bao g m 2 thành ph n: value và text.

o Line: ch a thông tin v tuy n xe, trong đó thành ph n name cho bi t tên tuy n xe c n đi.

2.6.4 Google Geocoding API Service 2.6.4.1. Gi i thi u 2.6.4.1. Gi i thi u

Geocoding là quá trình chuy n đ i đa ch v t a đ đ a lý (v đ , kinh đ ).

2.6.4.2. Gi i h n s d ng

 Dùng cho tài kho n mi n phí là 2500 yêu c u m i ngày.  Dùng cho tài kho n có tr phí là 100000 u c u m i ngày.

2.6.4.3. Cú pháp

M t yêu c u Geocoding API có d ng nh sau:

http://maps.googleapis.com/maps/api/geocode/output?parameters

Và, đ s d ng trên HTTPS là:

https://maps.googleapis.com/maps/api/geocode/output?parameters

Trong đó: output có th là JSON ho c XML

2.6.4.4. Các tham s

Ng i s d ng có th truy n nhi u tham s trong yêu c u, các tham s cách nhau b i kí t “&”. Danh sách các tham s và giá tr đ c li t kê nh sau:

Các tham s b t bu c ph i có trong yêu c u:

 Address: đ a ch d ng chu i.

 Sensor: Cho bi t li u có hay khơng u c u tìm t a đ đ n t m t thi t b c m ng v trí. Giá tr này ph i là true hay false.

Các tham s tùy ch n:

 Language: ngôn ng k t qu tr v , đ c kí hi u b i hai kí t .  Region: Các mã vùng, mi n qu c gia g m hai kí t .

 Components: Các b l c thành ph n, cách nhau b ng m t d u ( | ). M i b l c thành ph n g m m t component:value

2.6.4.5. Phân tích k t qu tr v

T p tin JSON tr v g m 2 thành ph n là status và results. Trong đó, thành ph n “results” bao g m:

 Type []: danh sách các lo i đa ch

 Formatted_address: tên đa ch đ c ch đnh đ tìm t a đ đa lý.

 Geometry: ch a thành ph n location (lat/lng) cho bi t thông tin v t a đ đa lý tìm đ c t đa ch .

2.6.5 Google Reverse Geocoding API Service 2.6.5.1. Gi i thi u 2.6.5.1. Gi i thi u

Reverse Geocoding là API chuy n đ i t a đ đa lý (v đ , kinh đ ) v đa ch .

2.6.5.2. Gi i h n s d ng

 Dùng cho tài kho n mi n phí là 2500 yêu c u m i ngày.  Dùng cho tài kho n có tr phí là 100000 u c u m i ngày.

2.6.5.3. Cú pháp

M t yêu c u Reverse Geocoding có d ng nh sau:

http://maps.googleapis.com/maps/api/geocode/output?parameters

Và, đ s d ng trên HTTPS là:

https://maps.googleapis.com/maps/api/geocode/output?parameters

Trong đó: output có th là JSON ho c XML

2.6.5.4. Các tham s

Ng i s d ng có th truy n nhi u tham s trong yêu c u, các tham s cách nhau b i kí t “&”. Danh sách các tham s và giá tr đ c li t kê nh sau:

Các tham s b t bu c ph i có trong yêu c u:

 latlng: t a đ đa lý (v đ , kinh đ ).

 Sensor: Cho bi t li u có hay khơng u c u tìm đa ch đ n t m t thi t b c m ng v trí. Giá tr này ph i là true hay false.

Các tham s tùy ch n:

 Language: ngôn ng k t qu tr v , đ c kí hi u b i hai kí t .

 Result_type: Cho bi t lo i k t qu đa ch tr v , ch ng h n country, postal_code ho c street_address (m c đnh).

2.6.5.5. Phân tích k t qu tr v :

T p tin JSON tr v g m 2 thành ph n là status và results. Trong đó, thành ph n “results” bao g m:

 Type []: danh sách các lo i đa ch .

 Formatted_address: tên đa ch tìm đ c t t a đ đa lý.

 Geometry: ch a thành ph n location (lat/lng) cho bi t thông tin v t a đ đa lý c n tìm đa ch .

2.6.6 Google Place Autocomplete API Service 2.6.6.1. Gi i thi u 2.6.6.1. Gi i thi u

Google Places Autocomplete là d ch v tìm các t g i ý so v i m t t khóa nào đó, thu c b Google Place API. s d ng d ch v Google Place API thì c n ph i có m t Place API key, quá trình đ ng ký và nh n key đ c mi n phí b i Google.

Hình 2.10: Minh h a ch c n ng autocomplete

Các b c đ ti n hành đ ng ký và nh n key nh sau:

Truy c p trang https://code.google.com/apis/console và đ ng nh p b ng tài kho n Gmail. M c đnh l n đ u tiên truy c p thành công vào trang web trên, m t d án m c đ nh API Project đ c t o ra, ng i dùng có th s d ng d án này hay t o m i tùy theo nhu c u. menu bên trái, click ch n Services  Status  Place API  On  API access.

Một phần của tài liệu 0947XÂ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 (Trang 43)

Tải bản đầy đủ (PDF)

(101 trang)