43
ĐẠI HC QUC GIA TP.HCM TRƯỜNG ĐẠI HC BÁCH KHOA KHOA KHOA HC & KTHUT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HC XÂY DNG HTHNG TÌMĐƯỜNG ĐI XE BUÝT TP HCHÍ MINH SDNG GOOGLE MAPS HỘI ĐỒNG: ……………………………… GVHD: TS. TRẦNVĂNHOÀI GVPB: SVTH 1: PHM NGC KHANH 50800920 SVTH 2: VÕ TRÍ KIÊN 50801018 TP. HCHÍ MINH, 06/2013

Tìm đường đi xe buýt trong TPHCM bằng Google Map

Embed Size (px)

Citation preview

Page 1: Tìm đường đi xe buýt trong TPHCM bằng Google Map

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

“XÂY DỰNG HỆ THỐNG TÌMĐƯỜNG ĐI

XE BUÝT TP HỒ CHÍ MINH

SỬ DỤNG GOOGLE MAPS”

HỘI ĐỒNG: ………………………………

GVHD: TS. TRẦNVĂNHOÀI GVPB:

SVTH 1: PHẠM NGỌC KHANH 50800920 SVTH 2: VÕ TRÍ KIÊN 50801018

TP. HỒ CHÍ MINH, 06/2013

Page 2: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

i

LỜI CAM ĐOAN

Chúng tôi xin cam đoan đây là công trình nghiên cứu của bản thân, đƣợc xuất phát từ

yêu cầu phát sinh trong công việc để hình thành hƣớng nghiên cứu. Các số liệu có nguồn gốc

rõ ràng, tuân thủ đúng nguyên tắc, và kết quả trình bày đƣợc thu thập trong quá trình nghiên

cứu là trung thực, chƣa từng đƣợc ai công bố trƣớc đây.

Tác giả luận văn

Page 3: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

ii

LỜI CẢM ƠN

Chúng em xin chân thành cảm ơn Khoa Khoa Học và Kỹ Thuật Máy Tính, trƣờng Đại

Học Bách Khoa, Đại Học Quốc Gia Thành Phố Hồ Chí Minh đã cung cấp cơ sở vật chất và tài

liệu giúp chúng em có điều kiện thực hiện đề tài này.

Chúng em xin gởi lời cảm ơn sâu sắc nhất đến thầy TrầnVănHoài, ngƣời đã tận tình

hƣớng dẫn, chỉ bảo cho chúng em trong suốt quá trình thực hiện đề tài. Thầy đã không ngừng

ủng hộ, khuyên bảo và dạy dỗ. Những tình cảm đó chúng em sẽ không thể nào quên.

Chúng em cũng xin gởi lời cảm ơn tới tất cả các thầy cô trong trƣờng đã truyền dạy

những kiến thức bổ ích, giúp chúng em có thêm hành trang để thực hiện những ƣớc mơ và

hoài bão của mình.

Chúng em xin cảm ơn sự động viên giúp đỡ của cha mẹ, anh chị, bạn bè trong suốt thời

gian thực hiện đề tài.

Mặc dù đã cố gắng hoàn thành đề tài trong phạm vi và khả năng cho phép nhƣng chắc

chắn sẽ không tránh khỏi những thiếu sót nhất định. Chúng em rất mong nhận đƣợc sự thông

cảm, góp ý và tận tình chỉ bảo của quý thầy cô và các bạn.

Tp. Hồ Chí Minh, tháng 06 năm 2013

Sinh viên thực hiện

PhạmNgọcKhanh

Võ TríKiên

Page 4: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

iii

TỔNG QUAN ĐỀ TÀI

“XÂY DỰNG HỆ THỐNG TÌM ĐƯỜNG ĐI XE BUÝT TP HỒ CHÍ

MINH SỬ DỤNG GOOGLE MAPS”

Giao thông vốn là một vấn đề rất đƣợc quan tâm trong các thành phố lớn. Nhất là trong

tình trạng hiện nay ở nƣớc ta nói chung, thành phố Hồ Chí Minh nói riêng, tình hình giao

thông đang diễn ra ngày càng phức tạp, nạn kẹt xe trong các giờ cao điểm diễn ra thƣờng

xuyên. Việc phổ biến thông tin và hƣớng dẫn ngƣời dân tìm đƣờng đi thích hợp với các

phƣơng tiện giao thông công cộng đang là một vấn đề cấp thiết. Với điều kiện cụ thể ở nƣớc

ta hiện nay, xe buýt sẽ là một phƣơng tiện mở đầu để ngƣời dân dần quen với hệ thống giao

thông này.

Việc tra cứu thông tin và đặc biệt là tìm các tuyến xe buýt thích hợp với nhu cầu của

từng ngƣời để đi lại sử dụng bằng bản đồ giấy thƣờng khó khăn và phức tạp, tốn nhiều thời

gian và sẽ càng khó khăn hơn khi giữa các tuyến đi không liên thông với nhau giữa điểm xuất

phát và điểm đích hay khi hệ thống các tuyến xe buýt ngày một chằng chịt, một xu hƣớng ắt

sẽ diễn ra trong tƣơng lai không xa. Tuy nhiên với sự trợ giúp của máy tính cũng nhƣ sự phổ

cập hệ thống mạng máy tính thì công việc đó sẽ trở nên dễ dàng và thuận lợi.

Với ý tƣởng đó, chúng em đã tiến hành tìm hiểu các công nghệ Google Maps để thực

hiện đề tài luận văn tốt nghiệp “Xây dựng hệ thống tìm đường đi xe buýt TP Hồ Chí Minh

sử dụngGoogle Mapss”, nhằm xây dựng nên một website với mục đích hỗ trợ ngƣời dùng

tìm đƣợc các tuyến xe buýt thích hợp nhất cho việc đi lại một cách trực quan mà đỡ tốn công

sức cũng nhƣ thời gian so với các bản đồ giấy thông thƣờng.

Page 5: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

iv

MỤC LỤC

CHƢƠNG I: GIỚI THIỆU TỔNG QUAN ................................................................................ 1

1. Yêu cầu thực tế và lý do thực hiện đề tài......................................................................... 1

2. Hiện trạng hệ thống xe buýt thành phố Hồ Chí Minh ..................................................... 1

3. Giới thiệu đề tài ............................................................................................................... 3

CHƢƠNG II: HƢỚNG TIẾP CẬN ĐỀ TÀI.............................................................................. 1

1. Hƣớng tiếp cận đầu tiên ................................................................................................... 1

2. Hƣớng tiếp cận thứ hai .................................................................................................... 2

3. Hƣớng tiếp cận thứ ba: .................................................................................................... 3

CHƢƠNG III: TÍNH TOÁN VÀ SO SÁNH GIỮA BA HƢỚNG TIẾP CẬN ......................... 4

1. So sánh ............................................................................................................................. 4

2. Đánh giá ........................................................................................................................... 6

3. Bảng kết luận so sánh ƣu điểm và nhƣợc điểm giữa bai giải thuật sau khi chạy thực tế

trên hệ thống............................................................................................................................ 7

CHƢƠNG IV: PHÂN TÍCH ...................................................................................................... 8

1. Các yêu cầu chức năng: ................................................................................................... 8

2. Các yêu cầu phi chức năng: ............................................................................................. 8

2.1 Mục tiêu .................................................................................................................... 8

2.2 Phạm vi ..................................................................................................................... 8

2.3 Chức năng................................................................................................................. 8

2.4 Tính khả dụng ........................................................................................................... 8

2.5 Tính ổn định ............................................................................................................. 8

2.6 Hiệu suất ................................................................................................................... 8

2.7 Sự hỗ trợ ................................................................................................................... 8

3. Xây dựng mô hình Use-case (Use-case Model) .............................................................. 9

3.1 Xác định Actor và Use-case ..................................................................................... 9

3.2 Mô hình Use-case (Use-case Model) ....................................................................... 9

4. Đặc tả Use-case................................................................................................................ 9

4.1 Lookup Busline Info (Tra cứu thông tin tuyến xe buýt) .......................................... 9

4.2 Find Path (Tìm đƣờng đi bằng xe buýt) ................................................................. 10

4.3 Manipulate Map(Thao tác trên bản đồ) .................................................................. 11

CHƢƠNG V: THIẾT KẾ ......................................................................................................... 12

1. Thiết kế kiến trúc hệ thống ............................................................................................ 12

Page 6: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

v

2. Thiết kế giao diện .......................................................................................................... 13

3. Thiết kế dữ liệu .............................................................................................................. 14

3.1 Dữ liệu đƣợc thiết kế dạng JSON ........................................................................... 14

3.2 Dữ liệu đƣợc thiết kế dạng text .............................................................................. 15

CHƢƠNG VI: CÔNG NGHỆ SỬ DỤNG ............................................................................... 17

1. DHTML ......................................................................................................................... 17

2. CSS ................................................................................................................................ 18

3. JavaScript....................................................................................................................... 18

4. Ajax................................................................................................................................ 19

5. JSON .............................................................................................................................. 19

6. jQuery và một số thƣ viện Jquery cần thiết ................................................................... 20

7. Google Maps API phiên bản 3....................................................................................... 20

8. ASP.NET ....................................................................................................................... 23

9. C#................................................................................................................................... 23

10. Thuật toán Dijkstra..................................................................................................... 24

10.1 Giải thuật Dijkstra [12] ....................................................................................... 24

10.2 Mã giả của giải thuật Dijkstra............................................................................. 25

CHƢƠNG VII: CÀI ĐẶT ........................................................................................................ 26

1. Môi trƣờng cài đặt và thử nghiệm ................................................................................. 26

2. Kết quả thử nghiệm và hƣớng dẫn sử dụng ................................................................... 26

3. Các testcase đã kiểm tra................................................................................................. 28

CHƢƠNG VIII: TỔNG KẾT ................................................................................................... 30

1. Kết quả đạt đƣợc ............................................................................................................ 30

2. Sản phẩm ....................................................................................................................... 30

2.1 Kết quả.................................................................................................................... 30

2.2 Một số vấn đề tồn tại .............................................................................................. 30

2.3 Hƣớng phát triển..................................................................................................... 30

Page 7: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

vi

MỤC LỤC HÌNH

Hình 2.1 Hướng tiếp cận thứ nhất ......................................................................................... 2

Hình 2.2 Hướng tiếp cận thứ hai ........................................................................................... 2 Hình 2.3 Hướng tiếp cận thứ ba ............................................................................................ 3 Hình 3.1: Sơ đồ tuyến khi chưa giới hạn ràng buộc về số lần chuyển tuyến ........................ 4

Hình 3.2: Sơ đồ tuyến khi chưa có phần đi bộ ...................................................................... 5 Hình 3.3: Tuyến sau khi đã thêm phần đi bộ ......................................................................... 5

Hình 4.1: Mô hình Use-case ................................................................................................. 5 Hình 5.1: Kiến trúc hệ thống ............................................................................................... 13 Hình 5.2: Giao diện trang chủ........................................................................................... 14

Hình 5.3: Hiển thị thông tin sau khi tính toán .................................................................... 14 Hình 5.4: Hiển thị thông tin của một tuyến ........................................................................ 14

Hình 5.5: Hiển thị kết quả .................................................................................................. 15 Hình 5.6: Cấu trúc JSON của 1 tuyến ................................................................................ 15 Hình 5.7: Dữ liệu từng tuyến .............................................................................................. 16

Hình 5.8: Dữ liệu cho từng trạm ........................................................................................ 16 Hình 5.9: Dữ liệu khoảng cách giữa các trạm ................................................................... 17

Hình 6.1: Mô hình hoạt động của Ajax .............................................................................. 20 Hình 6.2: Kết quả hiện thị từ Google Direction Service .................................................... 23 Hình 6.3: Khoảng cách tính toán giữa các điểm trên bản đồ ............................................ 24

Hình 7.1: Giao diện website chính của ứng dụng .............................................................. 26 Hình 7.2: Hiển thị danh sách các tuyến buýt có trên hệ thống .......................................... 27 Hình 7.3: Minh họa các thao tác khi click chuột phải trên bản đồ .................................... 27

Hình 7.4: Mô tả thông tin chi tiết về thời gian cũng như khoảng cách .............................. 28 Hình 7.5: Bảng mô tả chi tiết thời gian đi bộ, số tuyến cần đón và số thời gian về đích ... 28

Page 8: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

1

MỤC LỤC BẢNG

Bảng 3.1 So sánh giữa ba hướng tiếp cận với cùng một đầu vào ......................................... 4

Bảng 3.2Bảng đánh giá giữa ba hướng tiếp cận ................................................................... 6 Bảng 3.3So sánh giữa hướng tiếp cận 1 và 2 ........................................................................ 7 Bảng 3.5So sánh giữa hướng tiếp cận 1 và 3 ........................................................................ 7

Page 9: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

1

CHƯƠNG I: GIỚI THIỆU TỔNG QUAN

1. Yêu cầu thực tế và lý do thực hiện đề tài

Hệ thống giao thông của thành phố Hồ Chí Minh trong những năm gần đây gặp rất

nhiều khó khăn và tình trạng ùn tắc giao thông thƣờng xuyên xảy ra, nhất là vào những giờ

cao điểm. Một tình trạng chung cho các trung tâm thành phố phát triển.

Tuy nhiên, ở nƣớc ta chúng ta có thể nhận thấy đƣợc nguyên nhân gây ra ùn tắc giao

thông là do số lƣợng ngƣời sử dụng phƣơng tiện di chuyển cá nhân quá nhiều.

Do đó, nhà nƣớc đã tiến hành nhiều biện pháp hạn chế số lƣợng phƣơng tiện đó, đồng

thời đầu tƣ phát triển hệ thống giao thông công cộng, trong đó xe buýt sẽ là phƣơng tiện mở

màn để ngƣời dân quen dần với hệ thống giao thông công cộng này.

Tuy xe buýt không phải là phƣơng tiện di chuyển mới ở nƣớc ta nhƣng vì trƣớc đây

chúng hoạt động riêng lẽ, không theo một quy trình, một lộ trình chung nào cả, hơn nữa ngƣời

dân từ lâu đã quen với phƣơng tiện di chuyển cá nhân, cộng thêm phƣơng tiện di chuyển này

lại không đƣợc tuyên truyền rộng rãi nên kết quả bƣớc đầu không đƣợc khả quan.

Vì thế một website hƣớng dẫn tìm đƣờng đi xe buýt phù hợp với yêu cầu của hành

khách và hỗ trợ phổ biến thông tin về các tuyến, trạm của xe buýt đến đông đảo ngƣời dân là

thật sự cần thiết.

Ta có thể tham khảo một số website về tìm đƣờng đi xe buýt khá phổ biến hiện nay là

website: bus-tphcm, bus-hanoi.

Các website tìm lộ trình xe buýt này ƣu điểm là cho phép ta tìm các tuyến xe buýt tại

các con đƣờng, hay các trạm phổ biến. Giúp ngƣời dùng có thể tra cứu nhanh thông tin các

tuyến.

Tuy nhiên, với các website xe buýt trên, thì thách thức đặt ra là việc tìm kiếm phải

nhanh chóng, đồng thời trong quá trình tìm kiếm đƣờng đi ngắn nhất, vẫn chƣa tập trung

hƣớng vào ngƣời sử dụng.

Ví dụ: Các website tìm đƣờng hiện nay vẫn chƣa cho phép ta đứng tại vị trí bất kỳ mà

có thể tìm đƣợc lộ trình đƣờng đi tuyến xe buýt.

2. Hiện trạng hệ thống xe buýt thành phố Hồ Chí Minh

Mạng lƣới xe buýt trong thành phố HCM là một chính sách trọng điểm của nhà nƣớc

nhằm giảm bớt các phƣơng tiện cá nhân, đồng thời nhằm giảm hiện tƣợng ô nhiễm môi

trƣờng và tắc nghẽn giao thông trong thành phố.

Hiện nay thành phố có khoảng 152 tuyến xe buýt có trợ giá hoạt động, cùng với nhiều

tuyết không có trợ giá [1]. Mỗi tuyến xe buýt do một đơn vị chủ quản quản lý. Mỗi đơn vị chủ

quản sẽ phụ trách một hay nhiều tuyến xe buýt khác nhau.

Page 10: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

2

Mỗi tuyến xe buýt sẽ đi theo một lộ trình, và có một chiều dài, thời gian lộ trình nhất

định. Các tuyến xe buýt khác nhau sẽ có lộ trình khác nhau, nhƣng có thể giao nhau trong một

khoảng lộ trình nào đó. Lộ trình bao gồm những tuyến đƣờng và các địa danh quan trọng mà

tuyến xe buýt sẽ đi qua. Mỗi tuyến xe buýt có một lƣợt đi và lƣợt về. Lộ trình đi và lộ trình về

có thể ngƣợc nhau hoặc hoàn toàn khác nhau.

Trạm đầu mối là trạm dừng của nhiều tuyến xe buýt. Trạm này có thể là trạm bắt đầu

hoặc trạm kết thúc của một tuyến xe buýt. Một tuyến xe buýt có thể có cùng một trạm đầu

mối hoặc có một trạm đầu mối đầu và cuối khác nhau.

Các tuyến xe buýt bắt đầu sớm nhất vào lúc 4h30 và kết thúc trễ nhất vào lúc 20h30.

Tùy theo từng tuyến xe buýt mà chúng có thời gian bắt đầu và thời gian kết thúc khác nhau.

Mỗi tuyến xe buýt sẽ có nhiều chuyến xe buýt thay phiên nhau đến các nhà chờ hoặc

trạm dừng để đón khách. Tùy vào từng thời điểm trong ngày: thời gian cao điểm, thời gian

thấp điểm mà từng tuyến xe buýt sẽ có thời gian giãn cách giữa các chuyến xe tƣơng ứng: thời

gian giãn cách cao điểm, thời gian giãn cách thấp điểm.

Thời gian cao điểm là thời gian có nhiều chuyến xe của tuyến cùng hoạt động.

Thời gian giãn cách là khoảng thời gian mà cứ cách một khoảng thời gian này thì có

một chuyến xe thuộc tuyến xe đến nhà chờ để đón khách.

Nhà chờ/Trạm dừng là các trạm nhỏ để hành khách chờ khi đón xe và cũng là nơi để

khách xuống xe. Các nhà chờ (hay trạm dừng) đƣợc bố trí dọc theo lộ trình các tuyến xe buýt.

Một nhà chờ có thể thuộc lộ trình đi hoặc lộ trình về của một tuyến xe buýt. Một nhà chờ có

thể là trạm đón khách của nhiều tuyến xe buýt khác nhau. Các chuyến xe buýt có tuyến đi

ngang qua nhà chờ sẽ dừng lại đón khách nếu có khách đang chờ.

Mỗi tuyến xe buýt có một khung giá nhất định ứng với từng hình thức đi xe. Có 3 hình

thức đi xe buýt:

Hình thức đi lên xuống: là những hành khách đón xe đi trong một khoảng nhỏ lộ

trình trong suốt lộ trình của tuyến xe buýt đó.

Hình thức đi < ½ lộ trình: là những hành khách chỉ đi trong khoảng ½ lộ trình của

xe buýt đó.

Hình thức đi > ½ lộ trình: là những hành khách có lộ trình đi > ½ lộ trình của

tuyến xe buýt đó.

Hành khách muốn đi xe buýt phải xác định mình phải đón tuyến xe buýt nào và

phải đến đúng trạm dừng của tuyến xe buýt đó.

Nếu nhƣ không tìm đƣợc trạm dừng của tuyến xe buýt đó thì phải đón tuyến xe

buýt trung gian, khi đến trạm có trạm dừng của tuyến xe buýt muốn đi thì xuống xe và đón chuyến xe buýt đó.

Nhƣ vậy nếu nhƣ tuyến xe buýt bạn đang đi không đến đúng nơi bạn cần đến thì

khi đến các trạm dừng bạn phải xuống xe và đón tuyến xe phù hợp. Cứ nhƣ vậy cho đến khi bạn đến đúng nơi cần đến.

Page 11: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

3

3. Giới thiệu đề tài

Mục tiêu của đề tài là xây dựng một hệ thống tìm đƣờng đi bằng xe buýt trên địa bàn

thành phố Hồ Chí Minh giúp cho việc tìm kiếm thông tin về xe buýt trở nên dễ dàng hơn.

Page 12: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

1

CHƯƠNG II: HƯỚNG TIẾP CẬN ĐỀ TÀI

1. Hướng tiếp cận đầu tiên

Định nghĩa bài toán:

Cho trƣớc một danh sách các tuyến xe buýt, một danh sách các trạm cùng với vị trí tọa

độ và tên các trạm, một danh sách các khoảng cách giữa các trạm xe buýt. Bài toán yêu cầu

chúng ta tìm đƣờng đi ngắn nhất tính theo khoảng cách giữa hai vị trí bất kỳ khi ngƣời dùng

nhập vào (ở đây ta có thể gọi là điểm đầu và điểm cuối) dựa trên nền các tuyến xe buýt đã cho

trƣớc.

Dữ liệu đầu vào và kết quả đầu ra

Dữ liệu đầu vào: Gồm có phần dữ liệu danh sách các trạm xe buýt, cùng với danh sách

khoảng cách nối hai trạm xe buýt, đồng thời mỗi một trạm xe buýt có thêm tọa độ và tên của

mỗi trạm, phần dữ liệu thống kê danh sách các tuyến xe buýt đi qua các trạm xe buýt.

Kết quả đầu ra: Hiển thị danh sách đƣờng đi ngắn nhất thông qua các trạm xe buýt tính

theo khoảng cách ngắn nhất giữa hai điểm đầu và điểm đích mà ngƣời dùng nhập vào, đồng

thời hiển thị thời gian tìm kiếm đƣờng đi ngắn nhất này.

Với định nghĩa bài toán nhƣ thế, có thể thấy bài toán tìm đƣờng đi bằng xe buýt có nền

tảng là bài toán tìm đƣờng ngắn nhất trên nền một đồ thị có hƣớng, với các đỉnh là các trạm

xe buýt, các cạnh là các đƣờng nối giữa 2 trạm (tƣơng ứng với 1 tuyến xe buýt đi qua 2 trạm

đó).

Từ đó, nhóm đề xuất sử dụng một trong các giải thuật tìm đƣờng đi ngắn nhất trên đồ

thị và giải thuật đƣợc chọn là giải thuật Dijkstra.Với giải thuật Dijkstra ta sẽ tìm đƣợc đƣờng

đi ngắn nhất giữa 2 trạm bất kì trên bản đồ. Tuy nhiên, trong bài toán tìm đƣờng đi bằng xe

buýt thì có một vấn đề quan trọng là số lần chuyển tuyến (nghĩa là xuống xe tuyến này và đi

lên một xe tuyến khác) cua ngƣời dùng. Với việc áp dụng giải thuật Dijkstra thuần túy thì sẽ

không quan tâm đến việc chuyển tuyến, nghĩa là đƣờng đi ngắn nhất nhƣng số lần chuyển

tuyến có thể là lớn nhất. Việc này đối với ngƣời dùng đôi khi là một việc bất tiện vì sẽ phải

tốn thêm chi phí, cùng với thời gian chờ đợi các tuyến buýt sẽ tăng lên, đôi khi thời gian đi sẽ

lớn hơn so với việc đi bằng một lộ trình dài hơn nhƣng có số lần chuyển tuyến ít hơn.

Page 13: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

2

Hình 2.1 Hướng tiếp cận thứ nhất S: Trạm đầu r1, r2, r3, r4, r5, r6: Các tuyến buýt D: Trạm đích

Lộ trình đi từ S tới D sẽ đi bằng 3 tuyến là r1 - r2 - r3

Ưu điểm: Tìm được đường đi bằng xe buýt giữa 2 trạm bất kì trên bản đồ.

Khuyết điểm: Số lần chuyển tuyến có thể nhiều dẫn đến tăng chi phí đi lại và thời gian.

Với khuyết điểm nhƣ thế nhóm đi đến hƣớng tiếp cận thứ hai để cải thiện điều này.

2. Hướng tiếp cận thứ hai

Hƣớng tiếp cận thứ hai của nhóm là một sự cải thiện cho hƣớng tiếp cận đầu tiên. Sự cải

thiện đó là sẽ giới hạn lại số lần chuyển tuyến trong cả lộ trình. Với sự cải thiện này thì lộ

trình đi có thể sẽ dài hơn và thời gian có thể lớn hơn so với hƣớng tiếp cận đầu. Tuy nhiên,

nhƣ đã nói ở trên, việc này sẽ giúp giảm chi phí đi lại và đôi khi thì thời gian đi lại giảm

xuống do không phải tốn nhiều thời gian cho việc chờ chuyển tuyến. Điều này mang lại lợi

ích cho ngƣời dùng, vì tâm lý ngại chuyển tuyến cũng nhƣ phải tốn chi phí nhiều hơn.

Hình 2.2 Hướng tiếp cận thứ hai

S: Trạm đầu r1, r2, r3, r4, r5, r6: Các tuyến buýt

D: Trạm đích Với việc giới hạn số lần chuyển tuyến xuống còn hai thì lộ trình đi từ S tới D sẽ đi

bằng 2 tuyến là r4– r5

r4

S D

r1 r2 r3

r4 r5

r6

r6

r4

S D

r1 r2

r3

r4 r5

r6

r6

Page 14: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

3

Ƣu điểm: Tìm đƣợc đƣờng đi giữa 2 trạm bất kì trên bản đồ với số lần chuyên tuyến ít

hơn, giúp giảm chi phí đi lại.

Tuy nhiên, cả hai hƣớng tiếp cận trên đều gặp phải một vấn đề là lộ trinh đi sẽ không có

việc đi bộ ở giữa để chuyển tuyến, mà việc chuyển tuyến sẽ ngay tại trạm mà ngƣời dùng

xuống. Điều này có một điểm bất lợi là lộ trình ngƣời đi sẽ phải đi một đoạn đƣờng vòng chỉ

để đi qua đƣợc phía bên kia con đƣờng chẳng hạn, để đi tiếp tuyến tiếp theo. Trong khi thực tế

thì ngƣời đi sẽ băng qua đƣờng để chọn tuyến tiếp theo. Việc này làm cho lộ trình kéo dài ra

một cách không cần thiết gây tốn thời gian và công sức của ngƣời đi. Để giải quyết vấn đề

trên, nhóm đi đến hƣớng tiếp cận thứ ba.

3. Hướng tiếp cận thứ ba:

Hƣớng tiếp cận thứ ba là việc cải thiện ở hƣớng tiếp cận thứ hai, khắc phục vấn đề còn

tồn tại ở hai hƣớng tiếp cận trên. Đó là trong quá trình tìm kiếm đƣờng đi sẽ cho phép ngƣời

dùng đi bộ ở giữa lộ trình tránh việc phải đi vòng nhƣ đã đề cập trong phần khuyết điểm của

hai hƣớng tiếp cận trên.

Ở hƣớng tiếp cận này, ngƣời dùng ngoài việc đi bộ từ điểm chọn đến trạm gần nhất và

đi bộ từ trạm đích về đến đích nhƣ hai hƣớng tiếp cận trên, lộ trình sẽ có thêm đoạn đi bộ ở

giữa lộ trình, giúp cho ngƣời dùng chọn đƣợc một lộ trình hợp lí hơn giảm thời gian đi cũng

nhƣ tổng chiều dài của cả lộ trình. Với hƣớng tiếp cận này mỗi trạm ngoài đƣờng nối tới trạm

kế tiếp nhờ vào một tuyến buýt đi qua hai trạm thì sẽ có thêm cạnh nối đến tất cả những trạm

nằm trong một bán kính cho trƣớc. Và những cạnh nối thêm này sẽ đƣợc hiểu là đƣờng đi bộ

giữa hai trạm. Đồ thị đƣợc tạo nên từ hƣớng tiếp cận này sẽ có cùng số đỉnh nhƣng có số cạnh

nhiều hơn so với hai hƣớng tiếp cận ở trên.

Hình 2.3 Hướng tiếp cận thứ ba

S: Trạm đầu r1, r2, r3, r4, r5, r6: Các tuyến buýt

D: Trạm đích Với việc áp dụng đi bộ ở giữa lộ trình, thì từ S đi tuyến r6 đến S1 sau đo đi bộ đến

trạm S2 đi tiếp tuyến r3 tới D. Nhờ có đi bộ mà ta không phải đi đường vòng để đến S3.

r4

S D

r1 r2

r3

r4 r5

r6

r6 S1

S2

S3

Page 15: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

4

CHƯƠNG III: TÍNH TOÁN VÀ SO SÁNH GIỮA BA HƯỚNG

TIẾP CẬN

1. So sánh

Để so sánh giữa ba hƣớng tiếp cận để chọn ra đƣợc giải pháp hiệu quả nhất, nhóm đã

tiến hành cài đặt và thực hiện kiểm tra với cả ba hƣớng tiếp cận. Sau đây là bảng so sánh thời

gian, khoảng cách và quá trình chuyển trạm so với cùng một dữ liệu đầu vào (cùng điểm đầu

và điểm cuối)

Hƣớng tiếp cận Tổng khoảng cách Tổng thời gian Số trạm đi qua

1 17.129 km 45 phút 46 trạm

2 29.72 km 79 phút 76 trạm

3 3.04 km 36 phút (thời gian đi bộ giửa hai trạm trong quá trình chuyển

tuyến)

9 trạm

Bảng 3.1 So sánh giữa ba hướng tiếp cận với cùng một đầu vào

Hình 3.1: Sơ đồ tuyến khi chưa giới hạn ràng buộc về số lần chuyển tuyến

Page 16: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

5

Hình 3.2: Sơ đồ tuyến khi chưa có phần đi bộ

Hình 3.3: Tuyến sau khi đã thêm phần đi bộ

Page 17: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

6

2. Đánh giá

Dựa vào bảng so sánh bên trên thì ta có thể rút ra đƣợc nhƣ sau:

Hƣớng

tiếp cận Tổng khoảng cách

Thời gian

di chuyển Số trạm đi qua

Giới hạn số lần

chuyển tuyến

1 Hƣớng tiếp cận 1 do không giới hạn về số

lần chuyển tuyến nên sẽ có khoảng cách ngắn

hơn so với hƣớng tiếp cận thứ hai

Thời gian di chuyển phụ

thuộc vào quãng đƣờng

đi

Số trạm đi qua theo bảng so

sánh bên trên thì ít hơn so với

hƣớng tiếp cận thứ hai

Chƣa thêm điều kiện số lƣợt chuyển

tuyến

2 Hƣớng tiếp cận 2 do

thêm điều kiện số lần chuyển tuyến nên

khoảng cách sẽ lớn hơn so với không có điều kiện số lựơt chuyển

tuyến

Thời gian đi

phụ thuộc vào quãng

đƣờng di chuyển

Số trạm đi qua

cũng sẽ nhiều hơn so với

hƣớng tiếp cận 2

Giải thuật này có

áp dụng thêm ràng buộc số lƣợt

chuyển tuyến

3 Hƣớng tiếp cận 3 do

thêm điều kiện số lần chuyển tuyến và đi bộ giữa hai trạm gần nhau

nên khoảng cách và thời gian sẽ nhỏ hơn

nhiều so với giải thuật không có số lần đi bộ và có điều kiện số lựơt

chuyển tuyến

Thời gian sẽ

ngắn hơn nhiều so với hƣớng tiếp

cận 1 và 2

Số trạm đi qua

sẽ ít hơn rất nhiều so với hƣớng tiếp cận

1 và 2

Hƣớng tiếp cận

này ngoài điều kiện ràng buộc về số lần chuyển tuyến còn

có thêm điều kiện đi bộ giữa hai trạm

gần nhau

Bảng 3.2Bảng đánh giá giữa ba hướng tiếp cận

Page 18: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

7

3. Bảng kết luận so sánh ưu điểm và nhược điểm giữa bai giải thuật sau khi

chạy thực tế trên hệ thống.

Hƣớng tiếp cận Ƣu điểm Nhƣợc điểm

1 Khoảng cách, thời gian ngắn

hơn

Số lần chuyển tuyến

nhiều hơn

2 Số lần chuyển tuyến đƣợc giới hạn

Khoảng cách, thời gian tăng lên

Bảng 3.3So sánh giữa hướng tiếp cận 1 và 2

Hƣớng tiếp cận Ƣu điểm Nhƣợc điểm

2 Không có Khoảng cách, thời gian

lớn hơn nhiều

3 Do có đi bộ giữa hai trạm gần

nên sẽ có ƣu điểm về khoảng cách, thời gian

Không có

Bảng 3.4So sánh giữa hướng tiếp cận 2 và 3

Hƣớng tiếp cận Ƣu điểm Nhƣợc điểm

1 Không có Khoảng cách, thời gian

3 Do có đi bộ giữa hai trạm gần nên sẽ có ƣu điểm về khoảng

cách, thời gian

Không có

Bảng 3.5So sánh giữa hướng tiếp cận 1 và 3

Từ những so sánh và đánh giá nhƣ trên, nhóm đã chọn hƣớng tiếp cận thứ ba để hiện

thực cho chƣơng trình.

Page 19: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

8

CHƯƠNG IV: PHÂN TÍCH

1. Các yêu cầu chức năng:

TT Tên chức năng Mô tả chi tiết

1 Tra cứu thông tin tuyến Tra cứu thông tin của các tuyến xe buýt trên

địa bàn thành phố: danh sách các trạm của

tuyến, biểu diễn trực quan trên Google

Maps.

2 Tìm kiếm đƣờng đi bằng xe buýt Ngƣời dùng chọn điểm đầu và điểm cuối

trên bản đồ để tìm đƣờng đi bằng xe buýt.

2. Các yêu cầu phi chức năng:

2.1 Mục tiêu

Mục tiêu của phần tài liệu đặc tảbổsung này là định nghĩa đầy đủhơn các yêu cầu của hệ

thống hỗ trợ tìm đƣờng đi xe buýt trên web.

2.2 Phạm vi

Đặc tả này mô tả các yêu cầu phi chức năng nhƣ tính ổn định của hệ thống, khả dụng,

hiệu năng sử dụng của hệ thống.

2.3 Chức năng

Phần mềm hoạt động trên môi trƣờng Internet (web-base) và cho phép nhiều ngƣời

dùng cùng truy cập vào sử dụng cùng lúc

2.4 Tính khả dụng

Giao diện đƣợc trình bày khoa học, hợp lý và đảm bảo mỹ thuật hài hòa với mục đích

của phần mềm

2.5 Tính ổn định

Hệ thống phải hoạt động liên tục 24 giờ một ngày, 7 ngày mỗi tuần, với thời gian ngƣng

hoạt động không quá 10%.

2.6 Hiệu suất

Hệ thống phải tra cứu thông tin các đối tƣợng trên bản đồ trong cơ sở dữ liệu trong vòng

1 giây.

Hệ thống phải tìm kiếm đƣờng đi ngắn nhất giữa hai điểm trong vòng 3 giây.

2.7 Sự hỗ trợ

Hệ thống phải hỗ trợ ngƣời dùng trong việc tra cứu thông tin về tuyến xe buýt,

con đƣờng, địa danh với nhiều tiêu chí khác nhau: số hiệu, tên, địa chỉ...

Hệ thống phải hỗ trợ ngƣời dùng trong việc tìm kiếm đƣờng đi ngắn nhất:Chọn

điểm xuất phát và kết thúc bằng cáchchọn các điểm bất kì trên bản đồ.

Hệ thống phải hỗ trợ ngƣời dùng trong việc nhập thông tin tìm kiếm hay tra cứu

dƣới dạng chữ tiếng Việt có dấu (theo phông chữ Unicode) hay chữ tiếng không dấu.

Page 20: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

9

3. Xây dựng mô hình Use-case (Use-case Model)

3.1 Xác định Actor và Use-case

Actor:

User: Tra cứu thông tin, Tìm đƣờng đi, Duyệt bản đồ

Use-case:

Tra cứu thông tin:

Tra cứu thông tin tuyến buýt, biểu diễn trực quan trên bản đồ.

Tìm đƣờng đi bằng xe buýt:

Tìm đƣờng đi bằng xe buýt giữa hai điểm bất kì trên bản đồ.

Duyệt bản đồ Di chuyển bản đồ, Thu phóng bản đồ

3.2 Mô hình Use-case (Use-case Model)

Hình 4.1: Mô hình Use-case

4. Đặc tả Use-case

4.1 Lookup Busline Info (Tra cứu thông tin tuyến xe buýt)

Tóm tắt:

Use case này mô tả cách thức một ngƣời dùng tra cứu thông tin về tuyến xe buýt.

Thông tin này bao gồm: danh sách các trạm, tên tuyến, biểu diễn trực quan trên bản đồ.

Luồng các sự kiện:

o Luồng sự kiện chính:

­ Use case này bắt đầu khi có một ngƣời dùng muốn tra cứu thông tin về

tuyến xe buýt.

­ Ngƣời dùng sẽ chọn từ một danh sách các tuyến có sẵn tuyến mà mình

muốn xem.

Lookup Busline Info Find Path

Manipulate Map

Page 21: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

10

­ Ngƣời dùng sẽ chọn lƣợt đi hay lƣợt về của tuyến.

­ Sau đó ngƣời dùng sẽ nhấn nút “Hiển thị” để hiển thị thông tin về tuyến xe

buýt đó.

­ Hệ thống sẽ hiển thị ra thông tin chi tiết của tuyến xe buýt đó.

o Các luồng sự kiện khác:

­ Không có

Các yêu cầu đặc biệt:

Không có

Điều kiện tiên quyết

Không có

Post-conditions:

Khi usecase thực hiện thành công sẽ hiển thị kết quả ra cho ngƣời dùng, ngƣợc lại

sẽ hiển thị ra thông báo lỗi.

Điểm mở rộng

Không có

4.2 Find Path (Tìm đường đi bằng xe buýt)

Tóm tắt:

Use case này mô tả cách thức một ngƣời dùng thực hiện việc tìm kiếm đƣờng đi

bằng xe buýt.

Luồng các sự kiện:

o Luồng sự kiện chính:

­ Use case này bắt đầu khi có một ngƣời dùng muốn tìm đƣờng đi bằng xe buýt.

­ Ngƣời dùng sẽ chọn điểm bắt đầu đi bằng cách click chuột phải tại một điểm bất

kì trên bản đồ chọn “Bắt đầu đi”.

­ Ngƣời dùng sẽ chọn điểm đích bằng cách click chuột phải tại một điểm bất kì

trên bản đồ chọn “Đích đến”.

­ Ngƣời dùng nhập vào số lần chuyển tuyến tối đa của kết quả.

­ Sau đó ngƣời dùng sẽ nhấn nút “Tìm đƣờng đi” để bắt đầu tìm kiếm đƣờng đi.

­ Hệ thống sẽ hiển thị ra kết quả của việc tìm đƣờng cùng với biểu diễn trực

quan trên bản đồ.

o Các luồng sự kiện khác:

­ Không có

Các yêu cầu đặc biệt:

Page 22: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

11

Không có

Điều kiện tiên quyết

Không có

Post-conditions:

Khi usecase thực hiện thành công sẽ hiển thị kết quả ra cho ngƣời dùng, ngƣợc lại

sẽ hiển thị ra thông báo lỗi.

Điểm mở rộng

Không có

4.3 Manipulate Map(Thao tác trên bản đồ)

Tóm tắt:

Use case này mô tả cách thức một ngƣời dùng thực hiện việc thao tác trên bản đồ.

Luồng các sự kiện:

o Luồng sự kiện chính:

­ Use case này bắt đầu khi có một ngƣời dùng muốn thực hiện các việc thao

tác trên bản đồ.

­ Ngƣời dùng thực hiện các thao tác nhƣ di chuyển, thu phóng bản đồ.

o Các luồng sự kiện khác:

­ Không có

Các yêu cầu đặc biệt:

Không có

Điều kiện tiên quyết

Không có

Post-conditions:

Khi usecase thực hiện thành công sẽ hiển thị kết quả trực tiếp ra cho ngƣời dùng

theo từng hành động của ngƣời dùng, ngƣợc lại sẽ hiển thi ra thông báo lỗi.

Điểm mở rộng

Không có

Page 23: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

12

CHƯƠNGV: THIẾT KẾ

1. Thiết kế kiến trúc hệ thống

Hệ thống đƣợc thiết kế với 3 tầng khác nhau.

Client Layer

Máy tính cá nhân

Trình duyện web

(HTML + JavaScript + CSS + Ajax +

JQuery+ MapRender(Google Mapss))

Application Layer

Webserver

ASP.NET

Data Layer

Hình 5.1: Kiến trúc hệ thống

Client Layer: Đƣợc viết bằng JavaScript, DHTML, CSS, thực hiện nhiệm vụ xử lý thao

tác, đảm nhận vai trò trung gian truyền nhận dữ liệu, giữa ngƣời sử dụng với server; hiển thị

bản đồ, biểu diễn trực quan trên bản đồ kết quả của chƣơng trình.

Application Layer: Đƣợc phát triển trên công nghệ .NET của Microsoft. Tầng

Applicattion đảm nhận trách nhận yêu cầu từ tầng Client Layer, thực hiện thao tác với tầng

Data Layer để đọc dữ liệu, xử lý tính toán giải thuật rồi trả về kết quả cho tầng Client Layer.

Data Layer: Đóng vai trò là nơi lƣu trữ dữ liệu của chƣơng trình, dữ liệu của chƣơng

trình đƣợc lƣu dƣới dạng JSON và text file.

Json + File Text

Page 24: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

13

2. Thiết kế giao diện

Giao diện trang chủ

Hình 5.2: Giao diện trang chủ

Phần hiển thị dữ liệu sau khi tính toán

Hình 5.3: Hiển thị thông tin sau khi tính toán

Phần hiện thị lộ trình tuyến (Tuyến số 1 – Lượt đi)

Hình 5.4: Hiển thị thông tin của một tuyến

Page 25: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

14

Phần hiển thị kết quả lộ trình đi

Hình 5.5: Hiển thị kết quả

3. Thiết kế dữ liệu

Dữ liệu của chƣơng trình đƣợc chia ra làm hai phần: phần thứ nhất là dữ liệu chứa thông

tin của các tuyến xe buýt đƣợc lƣu dƣới dạng JSON; phần dữ liệu thứ hai chứa thông tin về

danh sách các trạm xe buýt để tạo nên đồ thị cho bài toán tìm đƣờng đi, dữ liệu này đƣợc lƣu

trong các file text.

3.1 Dữ liệu được thiết kế dạng JSON

Phần dữ liệu đƣợc thiết kế sẽ chia làm 2 phần, phần dữ liệu tuyến dành cho lƣợt đi và

dữ liệu tuyến cho lƣợt về và đều đƣợc cài đặt dƣới dạng JSON.

Hình 5.6: Cấu trúc JSON của 1 tuyến

Phần Data[0]: Tên địa chỉ/số nhà Phần Data[4]: Tọa độ Y

Phần Data[1]: Tên con đường Phần Data[5]: Số thứ tự trạm trong mỗi tuyến

Phần Data[2]: Tên quận Phần Data[6]: Tên mã trạm

Phần Data[3]: Tọa độ X

Trong mỗi tuyến có thể có nhiều trạm, mỗi trạm sẽ có cấu trúc dữ liệu giống nhƣ trên.

Và đƣợc chia trong hai thƣ mục lầ lƣợt chứa lƣợt đi và lƣợt về cho mỗi tuyến.

Page 26: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

15

3.2 Dữ liệu được thiết kế dạng text

Phần dữ liệu đƣợc thiết kế dƣới dạng text bao gồm hai file chính: File mô tả dữ liệu về

các tuyến và file mô tả dữ liệu chi tiết từng trạm.

File chứa dữ liệu tuyến:Sẽ chứa các dòng mô tả danh sách các trạm của một tuyến xe

buýt, mỗi dòng tƣơng ứng với một tuyến thuộc lƣợt đi hay lƣợt về.

Hình 5.7: Dữ liệu từng tuyến

Dòng số 1, 1-d: tuyến số 1, lượt đi. BX06….Q5T092: Bắt đầu khởi hành từ trạm Bến xe

06, và trạm dừng cuối cùng là Trạm 092 thuộc quận 5

File chứa dữ liệu chi tiết từng trạm: Trong file này thông tin để tạo nên đồ thị cho bài

toán tìm đƣờng đƣợc lƣu trữ. Nó chứa một tập các trạm buýt cùng với tọa độ của từng trạm;

một tập các cạnh nối giữa từng trạm với nhau (hai trạm sẽ có cạnh nối nếu có một tuyến bus

chạy qua giữa 2 trạm hoặc nằm trong bán kính cho trƣớc của một trạm nào đó).

Hình 5.8: Dữ liệu cho từng trạm

Dòng đầu tiên là số lượng trạm trên địa bàn thành phố Hồ Chí Minh.

Dòng thứ 2, cột đầu tiên là mã trạm, cột thứ 2,3 lần lượt là tọa độ (Kinh độ, Vĩ độ) dùng

để xác định trên bản đồ Google Mapss.

Page 27: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

16

Hình 5.9: Dữ liệu khoảng cách giữa các trạm

Ở cột đầu tiên và cột thứ hai là 2 trạm có cạnh nối với nhau; cột thứ 3 là khoảng cách

giữa hai trạm – khoảng cách là khoảng cách đường đi thực tế nếu cột thứ 4 là số 1, hoặc là

khoảng cách euclid nếu cột thứ 4 là số 0 (nghĩa là 2 trạm không có tuyến buýt nào đi qua mà

là 1 trạm nằm trong một bán kính cho trước của một trạm khác, thông tin này được dùng để

giải quyết vấn đề đi bộ ở giữa lộ trình nhứ đã nói ở chương 3).

Page 28: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

17

CHƯƠNG VI: CÔNG NGHỆ SỬ DỤNG

1. DHTML

DHTML[1] là mở rộng của HTML làm tăng hiệu ứng trình bày văn bản. Nó làm cho

trang Web sinh động hơn, ví dụ một đoạn text có thể thay đổi kích cỡ, màu sắc hoặc những

hình ảnh di chuyển từ vị trí này qua vị trí khác trên Web page, phản hồi lại tác động của ngƣời

dùng.

DHTML kết hợp nhiều đặc tính của các trình duyệt, kết hợp giữa CSS và script để

ngƣời lập trình khắc phục layout không linh động và sự giới hạn về tính tƣơng tác trong

HTML.

DHTML cung cấp ngƣời lập trình khả năng lập trình truy xuất đến DOM (Document

Object Model) cho trang HTML. Điều khiển DOM bằng script cho phép chúng ta truy xuất

bất cứ đối tựơng nào trên trang, chỉnh sửa nội dung, vị trí, thuộc tính CSS và thêm các thuộc

tính mở rộng.

DHTML là client-side scripting. Nó cho phép một trang Web đƣợc thay đổi sau khi

trang Web này đƣợc load bằng browser mà không gử i yêu cầu cho Web Server để thực hiện

update.

Cấu trúc DHTML: DOM, Scripts, CSS, XHTML.

DOM: cho phép bạn truy xuất đến bất cứ phần nào trang web của bạn để thay đổi nó

bằng DHTML. Mỗi phần của một trang Web đƣợc chỉ ra bởi DOM và sử dụng tên quy định

nhất quán của nó bạn có thể truy xuất chúng và thay đổi thuộc tính. DOM chỉ ra element có

thể bắt đƣợc những thay đổi đƣợc gọi là event, giống nhƣ di chuyển chuột qua một element

(onmouseover), loading một trang (onload), submitting một form (onsubmit), click trên một

form input field (onfocus)…

Scripts: đựơc viết bằng JavaScrip hay VBScript là 2 ngôn ngữ script phổ biến đƣợc sử

dụng để kích hoạt DHTML. Bạn sử dụng một ngôn ngữ script để điều khiển đối tƣợng đƣa ra

trong DOM.

CSS: đƣợc sử dụng trong DHTML để điều khiển giao diện và trực quan của Web page.

Style sheets định nghĩa màu, font của text, màu background, hình ảnh, và việc sắp xếp các

objects trên trang. Sử dụng script va’ DOM, bạn có thể thay đổi style của rất nhiều element

(nhƣ color, position, hay size), bạn có thể thực hịên với hầu nhƣ bất cứ tốc độ băng thông và

processor nào.

XHTML: Hay còn đƣợc gọi là HTML 4.x đƣợc sử dụng để tạo trang và tạo các element

cho CSS và DOM làm việc. Không có gì đặc biệt về XHTML cho DHTML – nhƣng cần có

XHTML hợp lý.

Page 29: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

18

Ví dụ về DHTML:

2. CSS

CSS [2]là chữ viết tắt của cụm từ tiếng anh (Cascading Style Sheet), CSS đƣợc tổ chức

World Wide Web (W3C) giới thiệu vào năm 1996. CSS chỉ đơn thuần là một file có phần mở

rộng là .css, trong file này chứa những câu lệnh CSS, mỗi câu lệnh css sẽ định dạng một thành

phần nhất định của tài liệu HTML nhƣ màu sắc, font chữ.

3. JavaScript

Javascript[3] là một ngôn ngữ thông dịch, chƣơng trình nguồn của nó đƣợc nhúng hoặc

tích hợp vào tập tin HTML. Khi trang web đƣợc tải trong trình duyệt hỗ trợ javascript, Trình

duyệt sẽ thông dịch và thực hiện các lệnh Javascipt.

Chƣơng trình nguồn Javascript đƣợc thông dịch trong trang HTML sau khi toàn bộ

trang đƣợc load nhƣng trƣớc khi trang đƣợc hiển thị.

Javascript ra đời dựa trên một nhu cầu hợp lý là giảm tải cho các server. Thay vì tất cả

các các thông tin dữ liệu phải đƣợc trao đổi trực tiếp giữa trình duyệt và web server thì nó

đƣợc Javascript tiền xử lý ngay trên trình duyệt trƣớc khi gởi đến các web server. Javascript

đã làm giảm lƣu lƣợng truy cập giữa server và client hay nói cách khác nó đã biến máy tính

<html>

<head><title>Ví dụ</title>

<style type=”text/css”>

h2 {background-color: lightblue; width: 100%}

a {font-size: larger; background-color: goldenrod}

a:hover {background-color: gold}

#example1 {display: none; margin: 3%; padding: 4%;

background-color:limegreen}

</style>

<script type=”text/javascript”>

function changeDisplayState (id) {

e = document.getElementById(id);

if (e.style.display == „none‟ || e.style.display == ”) {

e.style.display = “block”;

showhide.innerHTML = “Dấu ví dụ”;

}

else {

e.style.display = “none”;

showhide.innerHTML = “Hiển thị ví dụ”;

}

}

</script>

</head>

<body>

<a id=”showhide” href=”#” onclick=”java

script:changeDisplayState(„example‟) “>Hiển thị ví dụ</a>

<div id=”example1″>Đây là ví dụ: văn bản chỉ hiển thị khi bấm

chuột vào liên kết.</div>

<p>Thêm văn bản thường<p>

</body>

</html>

Page 30: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

19

của bạn thành một server tạm thời xử lý một số tác vụ đơn giản. Ví dụ, một trang thu thập dữ

liệu từ ngƣời dùng có thể sử dụng các đoạn code JavaScript để xác nhận tính hợp lý của thông

tin trƣớc khi gởi các dữ liệu này về server để xử lý.

Javascript có một nhiều tính năng và lệnh để thực hiện các phép tính toán học, xử lý

chuỗi, âm thanh, hình ảnh, các cửa sổ trình duyệt, kiểm tra các đƣờng dẫn URL, và thông tin

đƣợc nhập vào các biểu mẫu online. Các đoạn code xử lý này đƣợc chèn trực tiếp vào trang

web và đƣợc trình duyệt xử lý ngay trên máy tính của bạn.

4. Ajax

AJAX[4], viết tắt từ Asynchronous JavaScript and XML (JavaScript và XML không

đồng bộ). Ajax là một kiểu lập trình đƣợc dùng phổ biến năm 2005 bởi Goolge (với Google

Suggest), là bộ công cụ cho phép tăng tốc độ ứng dụng web bằng cách cắt nhỏ dữ liệu và chỉ

hiển thị những gì cần thiết, thay vì tải đi tải lại toàn bộ trang web.

Ajax dựa trên nền tảng chuẩn Web sau: JavaScript, XML, HTML, CSS. Chuẩn Web cơ

bản dùng trong Ajax đã đƣợc định nghĩ và hỗ trợ tất cả những trình duyệt cơ bản. Ứng dụng

Ajax là trình duyệt và không phụ thuộc HĐH. AJAX không phải một công nghệ đơn lẻ mà là

sự kết hợp một nhóm công nghệ với nhau. Trong đó, HTML và CSS đóng vai hiển thị dữ liệu,

mô hình DOM trình bày thông tin động, đối tƣợng XMLHttpRequest trao đổi dữ liệu không

đồng bộ với máy chủ web, còn XML/JSON là định dạng chủ yếu cho dữ liệu truyền.

Hình 6.1: Mô hình hoạt động của Ajax

5. JSON

JSON[5] (Javascript Object Notation) là một kiểu định dạng thay thế dữ liệu nhỏ gọn,

dễ đọc và viết đối với con ngƣời và dễ cho máy tính phân tích và tạo ra. JSON là kiểu định

dạng văn bản và hoàn toàn độc lập với ngôn ngữ nhƣng nó dùng quy ƣớc tƣơng tự nhƣ các

ngôn ngữ C, C++, Java, Javascript, và nhiều ngôn ngữ khác.

JSON đƣợc xây dựng theo hai cấu trúc

Một tập hợp các cặp tên/giá trị (name/value pairs). Trong các ngôn ngữ khác

nhau, cấu trúc này đƣợc nhận diện nhƣ là object, record, struct, hash table,…

Page 31: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

20

Một danh sách có thứ tự theo giá trị. Trong hầu hết các ngôn ngữ, cấu trúc này

đƣợc nhận diện nhƣ array, list, sequence.

Kiểu JSON thƣờng đƣợc sử dụng truyền những dữ liệu có cấu trúc qua mạng, chủ yếu là

giữa server và ứng dụng web.

6. jQuery và một số thư viện Jquery cần thiết

jQuery[6] là một Javascript Framework, hỗ trợ các nhà lập trình web tạo ra các tƣơng

tác trên website một cách nhanh nhất. jQuery đƣợc khởi xƣớng bởi John Resig (hiện là trƣởng

dự án của Mozzila) vào năm 2006, jQuery có mã nguồn mở và hoàn toàn miễn phí. jQuery có

một cộng đồng sử dụng đông đảo và đƣợc rất nhiều lập trình tham gia hoàn thiện, phát triển

và viết Plugin.

jQuery đơn giản hóa cách viết Javascript và tăng tốc độ xử lý các sự kiện trên trang

web, giúp tiết kiệm thời gian và công sức so với cách viết javascript thông thƣờng.

7. Google Maps API phiên bản 3

Google Maps[7] là một dịch vụ ứng dụng và công nghệ bản đồ trực tuyến trên web miễn

phí đƣợc cung cấp bởi Google, hỗ trợ nhiều dịch vụ khác của Google nổi bật là dẫn đƣờng.

Nó cho phép thấy bản đồ đƣờng sá, đƣờng đi cho xe buýt, cho ngƣời đi bộ và xe hơi, và

những địa điểm kinh doanh trong khu vực cũng nhƣ khắp nơi trên thế giới.

Google Maps API:

Đó là một phƣơng thức cho phép một website B sử dụng dịch vụ bản đồ của website A

(gọi là Map API) và nhúng vào website của mình (website B). WebSite A ở đây là Google

Maps, Website B là các website cá nhân hoặc tổ chức muốn sử dụng dịch vụ của Google, có

thể rê chuột, zoom, đánh dấu trên bản đồ...

Các ứng dụng xây dựng trên Google Mapss đƣợc nhúng vào trang web cá nhân thông

qua các thẻ Javascript, do vậy việc sử dụng Google Maps API rất dễ dàng.

Google Maps API đã đƣợc nâng cấp lên phiên bản thứ 3. Phiên bản mới này hỗ trợ

không chỉ cho các máy để bàn truyền thống mà cho cả các thiết bị di động. Nhanh hơn và tích

hợp cũng nhƣ cải tiến nhiều hơn các ứng dụng.

Điều quan trọng là các dịch vụ đa số hoàn toàn miễn phí với việc xây dựng một ứng

dụng nhỏ, đơn giản. Ta phải trả phí dịch vụ cho Google nếu đó là việc sử dụng cho những ứng

dụng lớn với mục đích thƣơng mại, kinh doanh, doanh nghiệp.

Google Services cung cấp cho chúng ta một tiện ích rất hay là chỉ dẫn đƣờng cho ngƣời

sử dụng. Khi ngƣời dùng muốn đi từ điểm đầu tới đích. Dịch vụ trả về môt hƣớng dẫn men

theo các con đƣờng.

Page 32: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

21

Google Direction Service[8]: Chỉ dẫn đƣờng trên bản đồ sử dụng service Google

Google cung cấp dịch vụ rất hữu ích cho các nhà phát triển đó là Google Direction

Service, Google Direction Service này có thể giúp bạn tính toán đƣợc hƣớng giữa các vị trí

(thông qua nhiều phƣơng thức chuyển đổi), bằng cách sử dụng các đối tƣợng google đã cung

cấp sẵn cho chúng ta nhƣ DirectionService. Đối tƣợng này kết nối với Google Maps API

Direction Service, và sẽ trả lại tập các kết quả mà Google đã tính toán và xử lý. Đặc biệt đối

tƣợng DirectionService có thế xử lý với các thông tin đƣa vào nhƣ tên địa danh, hay một

chuỗi văn bản (VD: “Chicago, IL” hoặc “144 Trƣơng Công Định, phƣờng 14, Tân Bình, Hồ

Chí Minh, Việt Nam”) mà không cần phải đƣa trực tiếp địa chỉ kinh độ, vĩ độ vào. Bạn cũng

có thể lựa chọn cho mình cách tìm kiếm hƣớng đi nhƣ qua việc lái xe, đi bộ, hay đi xe đạp.

Đặc biệt, DirectionService có thể trả về tập các cột mốc địa chỉ, vẽ các tuyến đƣờng trên

bản đồ một cách chính xác hay đƣa ra các đoạn text chỉ dẫn chính xác chiều tuyến đƣờng

(VD: ”Đi về hƣớng Bắc trên Trường Chinh về phía Hồ Đắc Di, điểm đến sẽ ở bên phải”).

Muốn sử dụng dịch vụ này, bạn phải đƣa vào địa chỉ hay tọa độ kinh-vỉ độ điểm đầu,

điểm đích, hoặc đƣa vào một mảng các điểm địa chỉ liên tiếp nhau (waypoint).

<script type="text/javascript">

var directionDisplay;

var directionservice = new google.maps.DirectionsService();

var map;

// Truyền hai tọa độ kinh vĩ độ vào

var haight = new google.maps.LatLng(21.00183,105.841212);

var oceanBeach = new google.maps.LatLng(21.016493,105.815377);

function initialize() {

directionsDisplay = new google.maps.DirectionsRenderer();

var myOptions = {

zoom: 14,

mapTypeId: google.maps.MapTypeId.ROADMAP,

center: haight

}

map = new google.maps.Map(document.getElementById("map_canvas"),

myOptions);

directionsDisplay.setMap(map);

}

function calcRoute() {

var request = {

origin: haight,

destination: oceanBeach,

travelMode: google.maps.DirectionsTravelMode.DRIVING

};

directionservice.route(request, function(response, status) {

if (status == google.maps.DirectionsStatus.OK) {

directionsDisplay.setDirections(response);

}

});

}

</script>

Page 33: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

22

Kết quả sẽ xuất hiện trên màn hình:

Hình 6.2 Kết quả hiển thị từ Google Direction Service

Tuy nhiên, Google Service Direction cũng giới hạn số lƣợng waypoint đƣa vào[2], và số

lần gửi yêu cầu lên máy chủ của google. Cụ thề bạn chỉ đƣợc gửi tối đa trung bình 8

waypoints mỗi lần. Nếu muốn gửi nhiều waypoints thì bạn phải trả phí cho google.

Google Map Distance Matrix Service[9]: Dịch vụ của google giúp chúng ta tính khoảng

cách giữa hai địa điểm bất kỳ trên bản đồ.

Cũng nhƣ dịch vụ Google Direction Service, Google Distance Matrix Service cũng giới

hạn số địa chỉ đƣa vào, cụ thể nhƣ sau:

Bạn chỉ có thể đƣa vào lớn nhất là 25 địa chỉ điểm đầu và 25 địa chỉ điềm đích mỗi một

lần gửi yêu cầu lên máy chủ google.

Cách sử dụng google Map API Matrix Distance:

var origin1 = new google.maps.LatLng(55.930385, -3.118425);

var origin2 = "Greenwich, England";

var destinationA = "Stockholm, Sweden";

var destinationB = new google.maps.LatLng(50.087692, 14.421150);

var service = new google.maps.DistanceMatrixService();

service.getDistanceMatrix(

{

origins: [origin1, origin2],

destinations: [destinationA, destinationB],

travelMode: google.maps.TravelMode.DRIVING,

avoidHighways: false,

avoidTolls: false

}, callback);

function callback(response, status) {

// See Parsing the Results for

// the basics of a callback function.

}

Page 34: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

23

Hình 6.3: Khoảng cách tính toán giữa các điểm trên bản đồ

8. ASP.NET

ASP.NET[10] là một nền tảng ứng dụng web (web application framework) đƣợc phát

triển và cung cấp bởi Microsoft, cho phép những ngƣời lập trình tạo ra những trang web động,

những ứng dụng web và những dịch vụ web. Lần đầu tiên đƣợc đƣa ra thị trƣờng vào tháng 2

năm 2002 cùng với phiên bản 1.0 của .NET framework, là công nghệ nối tiếp của Microsoft's

Active Server Pages (ASP). ASP.NET đƣợc biên dịch dƣới dạng Common Language Runtime

(CLR), cho phép những ngƣời lập trình viết mã ASP.NET với bất kỳ ngôn ngữ nào đƣợc hỗ

trợ bởi .NET language.

ASP là một công nghệ của Microsoft dùng để tạo các trang web có nội dung động. Một

trang ASP thực chất là một file HTML có nhúng các khối Server – Side VBScript hay

JavaScript. Khi một trình duyệt khách yêu cầu một trang ASP page, web server sẻ sinh ra mã

HTML, xử lý các server-side script khi chúng đến. Thƣờng thì các Script sẻ truy cập vào một

cơ sở dữ liệu, và biểu diễn trân trang HTML. ASP là cách đơn giản nhất để tạo các ứng dụng

brower-based. ASP.NET là một phiên bản mới của ASP đã cải tiến các thiếu sót của ASP.

9. C#

Ngôn ngữ này [11] đƣợc xây dựng và kiến trúc bởi Anders Hejlsberg, ngƣời đã viết nên

trình biên dịch Pascal và có nhiều đóng góp cho Delphi cũng nhƣ Java. Chính vì vậy dù mang

họ nhà C nhƣng C# là một ngôn ngữ hƣớng đối tƣợng hiện đại và dễ học, chịu ảnh hƣởng và

học hỏi nhiều tính ƣu việt từ Java, C++ và các ngôn ngữ khác.

C# là một trong rất nhiều ngôn ngữ lập trình đƣợc hỗ trợ bởi .NET Framework (nhƣ

C++, Java,VB…). Có thể hiểu đơn giản đây là một trung tâm biên dịch trong đó tất cả các

ngôn ngữ đƣợc hỗ trợ bởi .NET Framework sẽ đƣợc chuyển đổi ra MSIL (một dạng mã trung

gian) rồi từ đấy mới đƣợc biên dịch tức thời (Just in time Compiler – JIT Compiler) thành các

file thực thi nhƣ exe. Một thành tố quan trong nữa trong kiến trúc .NET Framework chính là

Page 35: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

24

CLR (.NET Common Language Runtime), khối chức năng cung cấp tất cả các dịch vụ mà

chƣơng trình cần giao tiếp với phần cứng, với hệ điều hành.

10. Thuật toán Dijkstra

10.1 Giải thuật Dijkstra [12]

“Cho một đồ thị có hƣớng G=(V,E), một hàm trọng số w: E → [0, ∞) và một đỉnh

nguồn s. Cần tính toán đƣợc đƣờng đi ngắn nhất từ đỉnh nguồn s đến mỗi đỉnh của đồ thị”.

Ví dụ: Chúng ta dùng các đỉnh của đồ thị để mô hình các thành phố và các cạnh để mô

hình các đƣờng nối giữa chúng. Khi đó trọng số các cạnh có thể xem nhƣ độ dài của các con

đƣờng (và do đó là không âm). Chúng ta cần vận chuyển từ thành phố s đến thành phố t.

Thuật toán Dijkstra sẽ giúp chỉ ra đƣờng đi ngắn nhất chúng ta có thể đi.

Trọng số không âm của các cạnh của đồ thị mang tính tổng quát hơn khoảng cách hình

học giữa hai đỉnh đầu mút của chúng. Ví dụ, với 3 đỉnh A, B, C đƣờng đi A-B-C có thể ngắn

hơn so với đƣờng đi trực tiếp A-C.

Phân tích:Với giải thuật đã mô tả ta dễ dàng thực hiện trực tiếp trên các đồ thị kích

thƣớc nhỏ,để có thể mã hóa và cài đặt hiệu quả cần đƣa thêm các cấu trúc dữ liệu để sử dụng

trong giải thuật.

“Dữ liệu:Hàm d(u) dùng để lƣu trữ độ dài đƣờng đi ngắn nhất từ đỉnh nguồn s đến đỉnh

u. Rõ ràng d(s)= 0. Ký hiệu là tập tất cả các đỉnh có cạnh đi tới đỉnh u. Nếu với

mọi đã xác định đƣợc d(v) thì:

Để tính đƣợc giá trị nhỏ nhất này, nhƣ thông thƣờng khi khởi tạo ta phải gán cho d(v)=

, sau đó gặp giá trị nhỏ hơn thì thay thế lại.

Những đỉnh đã tính đƣợc d(v)hữu hạn đƣợc cho vào một hàng đợi có ƣu tiên.

Để theo dõi trạng thái của các đỉnh trong quá trình xét, ta dùng hàm COLOR(u) xác

định với mọi . Lúc đầu các đỉnh đƣợc tô màu trắng (WHITE), khi cho vào hàng đợi nó

đƣợc tô màu xám (GRAY), khi đã tính xong khoảng cách nó đƣợc tô màu đen(BLACK)”[4].

Ý tƣởng của giải thuật Dijkstra: Ta sẽ xây dựng một cây phủ tối tiểu T từ một đỉnh s là

đỉnh gốc của cây.

Ở mỗi bƣớc lặp: chọn một đỉnh i ở ngoài cây T, sao cho đỉnh này nối đƣợc với cây, mà

có đƣờng đi tới gốc s là ngắn nhất. Dừng lặp khi T đã đủ n đỉnh.

Vậy kết quả là cây T cuối cùng là cây phủ, có đỉnh gốc là s đi tới các đỉnh còn lại bất kỳ

là ngắn nhất.

Page 36: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

25

10.2 Mã giả của giải thuật Dijkstra

Dijkstra(G, s) {

1 Khởi tạo tập S chỉ chứa đỉnh ban đầu s;

2 for (mỗi đỉnh v thuộc G) {

3 D[v] = C(s, v); // C(s, v)=vô cùng nếu s và v

không nối với nhau

4 }

5 D[s] = 0;

6 while ( (V-S) != Φ ) {

7 Chọn đỉnh u thuộc (V-S) sao cho D[u] ngắn nhất;

8 S = S U {u};

9 for ( mỗi v thuộc (V-S) ) {

10 if (D[u] + C(u, v) < D[v]) { 11 D[v] = D[u] + C(u, v); 12 } 13 } 14 }

Page 37: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

26

CHƯƠNG VII: CÀI ĐẶT

1. Môi trường cài đặt và thử nghiệm

Môi trường dành cho khách hàng

Trình duyệt Google Chrome 27/ Firefox 21/ Internet Explorer 9.0

Môi trường dành cho nhà lập trình và phát triển

Hệ điều hành Windows 7 64 bit

Microsoft Visual Studio Ultimate 2010

Trình duyệt Google Chrome 27/ Firefox 21/ Internet Explorer 9.0

2. Kết quả thử nghiệm và hướng dẫn sử dụng

Giao diện ứng dụng

Hình 7.1 Giao diện website chính của ứng dụng

Menu gồm có bốn lựa chọn gồm:

o Chọn tuyến xe buýt: xem danh sách các tuyến xe buýt hiện có trên hệ thống.

o Lƣợt đi: ngƣời dùng có thể check vào để xem tuyến lƣợt đi và lƣợt về.

o Số bus tối đa: ngƣời dùng có thể điền số lƣợng tuyến bus tối đa mà ngƣời dùng

muốn đi.

o Nút tìm đƣờng đi: hiển thị một tuyến đƣờng đi xe buýt.

Page 38: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

27

Hình 7.2: Hiển thị danh sách các tuyến bus hiện có trên hệ thống

Giao diện trên bản đồ gồm bốn lựa chọn sau:

o Bắt đầu: ngƣời dùng click chuột phải lên bản đồ và chọn điểm bắt đầu mà

mình muốn đi.

o Đích đến: ngƣời dùng click chuột phải lên bản đồ và chọn điểm đích đến mà

mình muốn đi

o Phóng tó: phóng to bản đồ.

o Thu nhỏ: thu nhỏ bản đồ.

Hình 7.3: Minh họa các thao tác khi click chuột phải trên bản đồ

Giao diện thanh panel bên tay trái gồm hai phần:

o Phần panel bên trên: mô tả thông tin chi tiết về tên trạm, vị trí của trạm nằm

trên con đƣờng nào, thời gian cũng nhƣ khoảng cách mà tuyến xe buýt sẽ đi

qua giữa hai trạm đó.

o Phần panel bên dƣới: Bao gồm thông tin về tổng khoãng cách và tổng thời gian

mà tuyến xe buýt đi từ điểm đầu đến điểm cuối

o Ngoài ra còn có thêm hai nút: Chọn điểm đầu, chọn điểm cuối cho phép nhập

một số testcase mẫu dùng để kiểm tra.

Page 39: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

28

Hình 7.4: Mô tả thông tin chi tiết về thơi gian cũng như khoảng cách

Sau khi chọn nút Tìm đƣờng đi thì hệ thống sẽ hiện ra một bảng thông báo về thời gian

đi từ lúc bắt đầu đi ra tới trạm đầu tiên, sau đó chọn tuyến bao nhiêu, rồi thời gian đi bộ về

đích.

Hình 7.5: Bảng mô tả chi tiết thời gian đi bộ, số tuyến cần đón và số thời gian về đích

3. Các testcase đã kiểm tra

Testcase kiểm tra ở website

STT Chức năng Tham số đầu vào/Sự

kiện

Kết quả

kiểm tra

Ghi chú

1 Kiểm tra quá trình

chọn tuyến trong

khu trung tâm

thành phố

Nhập hai địa chỉ đầu

và đích ở trung tâm

thành phố

Hoàn thành

2 Kiểm tra quá trình

chọn tuyến khu

trung tâm và ngoài

thành phố

Nhập hai địa chỉ đầu

và đích ở trung tâm

thành phố

Hoàn thành

3 Kiểm tra quá trình

chọn tuyến hai khu

vực nội ô thành phố xa nhau

Nhập hai địa chỉ đầu

và đích ở hai khu

trung tâm thành phố

Hoàn thành

4 Chọn danh sách

các tuyến trên địa

bàn TPHCM

Hiển thị các tuyến

trên địa bàn TPHCM

Hoàn thành

5 Chọn nút thu nhỏ Thu nhỏ bản đồ Hoàn thành

6 Chọn nút phóng to Phóng to bản đồ Hoàn thành

7 Chọn điểm đầu Hiển thị địa chỉ sau Hoàn thành

Page 40: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

29

khi chọn

8 Chọn điểm cuối Hiển thị địa chỉ sau

khi chọn

Hoàn thành

9 Chọn tìm tuyến lần

thứ hai

Chọn tìm tuyến xe

buýt lần thứ hai

Chƣa hoàn

thành

10 Xóa đƣờng dẫn nói

các tuyến lại với

nhau sau khi chọn

địa chỉ khác

Sau khi chọn nút tìm

đƣờng đi lần thứ hai

Chƣa hoàn

thành

Page 41: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

30

CHƯƠNG VIII: TỔNG KẾT

1. Kết quả đạt được

Sau khi thực hiện luận văn,chúng em đã thu đƣợc những thành công nhất định thông

qua việc tìm hiểu, nghiên cứu và xây dựng ứng dụng thực tế. Những phần chính mà chúng em

đã nghiên cứu và ứng dụng là:

Hiểu thêm về các giai đoạn trong việc xây dựng và phát triển website

Rèn luyện kỹ năng mềm nhƣ làm kỹ năng việc nhóm, kỹ năng lập kế hoạch, viết

báo cáo…

Về kỹ thuật, nhóm đã tìm hiểu đƣợc một số các công nghệ về lập trình web nhƣ

ASP.NET, C#, DHTML, CSS, JavaScript, Ajax, Jquery, Google Maps API; lập trình

ứng dụng web, giải thuật Dijkstra cải tiến, biết thêm về web service và mô hình client –

server, tìm hiểu đƣợc về các cơ sở dữ liệu mới nhƣ : JSON.

2. Sản phẩm

2.1 Kết quả

Hệ thống website tìm đƣờng đi xe buýt đã đáp ứng đƣợc những chức năng cơ bản nhất

theo theo yêu cầu luận văn đã đặt ra. Phần giao diện website có giao diện thân thiện với ngƣời

dùng, phần mã nguồn có cấu trúc hợp lý, dễ dàng cho việc nâng cấp, bảo trì trong tƣơng lai.

2.2 Một số vấn đề tồn tại

Các vấn đề này chủ yếu là những chức năng giúp cho hệ thống trở nên hoàn thiện hơn

và thân thiện hơn với các ngƣời dùng, nhƣng do giới hạn về thời gian, những chức năng này

sẽ đƣợc tiếp tục hoàn thiện trong tƣơng lai. Những vấn đề này là:

Hệ thống chƣa đƣợc kiểm thử với lƣợng lớn ngƣời dùng

Một số giới hạn dịch vụ thiết yếu dành cho lập trình viên muốn sử dụng thì trả phí

cho Google nhƣ dịch vụ vẽ đƣờng(Direction) hay tính toán khoảng cách( Distance) bị

giới hạn số lần truy xuất.

Hệ thống website hiện chƣa phát triển để có thể chạy trên các thiết bị di động.

Chƣa cung cấp cơ chế tƣơng tác giữa website với ngƣời dùng (Ví dụ: Hệ thống

chƣa cho phép ngƣời dùng tự cập nhật các tuyến đƣờng giao thông…)

2.3 Hướng phát triển

Dựa trên các kết quả đạt đƣợc trong luận văn, chúng em xin đề xuất thêm một số các

hƣớng phát triển nhƣ sau:

Hiện nay ngoài hệ thống bản đồ GoogleMap, còn có hệ thống mã nguồn mở rất

nổi tiếng khác là OpenStreetMap, hiện nay OpenStreetMap ngày càng phát triển, hứa

Page 42: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

31

hẹn sẽ cung cấp những tính năng dịch vụ cần thiết tƣơng tự nhƣ GoogleMap cho các

nhà phát triển hay các lập trình viên mà không phải trả phí.

Phát triển website thành một dịch vụ web, mở rộng đối tƣợng phục vụ của hệ

thống, không chỉ đối với ngƣời dùng máy tính mà còn cho các thiết bị di động.

Tiến hành phân quyền ngƣời sử dụng, trên cơ sở đó phát triển chức năng cập nhật

các tuyến đƣờng giao thông thông qua website, đƣa ngƣời sử dụng tham gia vào việc

thêm, xóa và sửa đổi các tuyến đƣờng giao thông, nhƣ thế bản đồ sẽ đƣợc cập nhật dễ

dàng và thƣờng xuyên hơn.

Tối ƣu về hiệu suất khi truy cập hệ thống

Page 43: Tìm đường đi xe buýt trong TPHCM bằng Google Map

Xây dƣng hê thông tìm đƣ ờng xe buýt tại TP Hồ Chí Minh sử dụng Google Maps 2013

32

Tài liệu tham khảo

1. Introduction to Dynamic HTML. Available from:

http://msdn.microsoft.com/en-us/library/ms533044%28v=VS.85%29.aspx

HTML Dom Introduction. Available from:

http://www.w3schools.com/htmldom/dom_intro.asp

2. CSS Tutorial. Available from: http://www.w3schools.com/css/default.asp

3. JavaScript Guide/JavaScript MDN. Available from:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide

4. Ajax tutorial. Available from:http://www.w3schools.com/ajax/default.asp. 5. JSON. Available from: http://www.json.org/ .

6. Jquery. Available from: http://jquery.com/

7. Google Maps JavaScript API v3 Reference. Available from:

https://developers.google.com/maps/documentation/javascript/reference

8. Google Map JavaScript API v3/Direction Service. Available from:

https://developers.google.com/maps/documentation/javascript/directions#Wayp

oints

9. Distance Matrix and Limit requirement. Available from:

https://developers.google.com/maps/documentation/javascript/distancematrix#u

sage_limits_and_requirements

10. ASP.NET Tutorial. Available from:

http://www.w3schools.com/aspnet/default.asp

11. C# tutorial-MSDN. Available from: http://msdn.microsoft.com/en-

us/library/aa288436(v=vs.71).aspx

12. Anonymous. Dijkstra’s algorithm. Available from:

http://en.wikipedia.org/wiki/Dijkstra's_algorithm