Upload
baran19901990
View
1.253
Download
4
Embed Size (px)
Citation preview
ĐẠ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
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
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
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.
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
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
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
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
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.
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.
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.
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.
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
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
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
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ộ
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
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.
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.
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
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:
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ó
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
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
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.
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.
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).
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ý.
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>
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,…
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.
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>
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.
}
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à
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.
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 }
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.
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.
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
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
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
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
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