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

XÂY DỰNG HỆ THỐNG WEB HỖ TRỢ TÌM ĐƯỜNG XE BUÝT

53 532 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 53
Dung lượng 2,78 MB

Nội dung

Việc tra cứu thông tin và đặc biệt là tìm các tuyến thích hợp để đi lại bằng bả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 trở nên ngày

Trang 1

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HCM

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN NGỌC VẠN – TRẦN HOÀNG HUY

XÂY DỰNG HỆ THỐNG WEB

HỖ TRỢ TÌM ĐƯỜNG XE BUÝT

BÁO CÁO THỰC TẬP TỐT NGHIỆP

TP HCM, 2011

Trang 2

Trang 0

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HCM

KHOA CÔNG NGHỆ THÔNG TIN

NGUYỄN NGỌC VẠN - 0751120130

XÂY DỰNG HỆ THỐNG WEB

HỖ TRỢ TÌM ĐƯỜNG XE BUÝT

BÁO CÁO THỰC TẬP TỐT NGHIỆP

GIÁO VIÊN HƯỚNG DẪN

VŨ ĐÌNH LONG

NIÊN KHÓA 2007 - 2012

Trang 3

Trang 1

Nhận xét của giáo viên hướng dẫn

Trang 4

Trang 2

Nhận xét của giáo viên phản biện

Trang 5

Trang 3

Lời cảm ơn

Chúng em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, trường Đại Học Giao Thông Vận Tải TPHCM đã tạo điều kiện cho chúng em thực hiện đề tài này

Chúng em xin chân thành cảm ơn thầy Vũ Đình Long đã tận tình hướng dẫn, động viên chúng em trong suốt thời gian thực hiện

Chúng em xin chân thành cảm ơn quý Thầy Cô trong khoa đã tận tình hướng dẫn, trao dồi kiến thức cho chúng em trong những năm học vừa qua

Chúng em gửi lòng biết ơn sâu sắc đến ba, mẹ, đến các anh chị, bạn bè và người thân đã góp ý, giúp đỡ và động viên chúng em trong suốt thời gian học tập và nghiên cứu

Trong giới hạn thời gian của đề tài thực tập tốt nghiệp, chúng em đã cố gắng hoàn thành đề tài, dù vậy vẫn không thể tránh những sai sót, kính mong sự tận tình chỉ bảo và giúp đỡ của thầy cô và các bạn để đề tài hoàn thiện hơn

Nhóm sinh viên thực hiện Nguyễn Ngọc Vạn & Trần Hoàng Huy

Trang 6

Trang 4

Lời nói đầu

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 như một căn bệnh cấp tính 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 việc làm cần 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ở màn để người dân quen dần 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 thích hợp để đi lại bằng bả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 trở nên 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 thì công việc đó trở nên dễ dàng và tiện lợi Với ý tưởng đó, chúng em đã tiến hành tìm hiểu các công nghệ WebGIS để thực hiện đề tài “Hệ thống web hỗ trợ tìm đường đi xe buýt” nhằm tạo ra một website để hỗ trợ người dùng tìm được các tuyến đường thích hợp cho việc đi lại một cách trực quan, đơn giản, nhanh chóng và tiện lợi

Đề tài này gồm 6 chương :

Chương 1: Tổng quan về đề tài

Chương 2: Hướng tiếp cận của đề tài

Chương 3: Tìm hiểu Map API

Chương 4: Ứng dụng hệ thống web tìm đường xe buýt

Chương 5: Tổng kết và hướng phát triển

Trang 7

Trang 5

Mục lục

Lời cảm ơn 3

Lời nói đầu 4

Chương 1 Tổng quan về đề tài 7

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

1.2 Mục tiêu của đề tài 7

Chương 2 Hướng tiếp cận của đề tài 8

2.1 Phân tích dữ liệu bản đồ 8

2.1.1 Mối quan hệ giữa bản đồ xe buýt và bản đồ giao thông đường bộ 8

2.1.2 Tổ chức dữ liệu bản đồ xe buýt 9

2.2 Phân tích yêu cầu người dùng 14

2.3 Giải thuật tìm kiếm đường đi ngắn nhất 15

2.4 Vận dụng giải thuật A* vào trong bài toán 17

2.4.1 Vận dụng đơn giản 17

2.4.2 Vận dụng triệt để 18

Chương 3 Tìm hiểu Map API 24

3.1 Công nghệ làm Web bản đồ 24

3.1.1 Vấn đề đặt ra khi làm bản đồ 24

3.1.2 Cách giải quyết 24

3.2 Giới thiệu về Vietbando Maps API 26

Chương 4 Ứng dụng hệ thống web tìm đường xe buýt 36

4.1 Phân tích yêu cầu 36

4.2 Công nghệ thực hiện và yêu cầu cấu hình 36

4.2.1 Công nghệ thực hiện 36

Trang 8

Trang 6

4.2.2 Yêu cầu cấu hình người dùng 36

4.3 Tính năng chính của chương trình 37

4.3.1 Tính năng tìm đường 37

4.3.2 Các tính năng hỗ trợ quản trị 42

Chương 5 Tổng kết Và Hướng Phát Triển 45

5.1 Tổng kết 45

5.2 Hướng phát triển 45

TÀI LIỆU THAM KHẢO 46

PHỤ LỤC: DANH MỤC CÁC TUYẾN XE BUÝT TẠI TPHCM 47

Trang 9

Trang 7

Chương 1 Tổng quan về đề tài

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

Từ lâu, giao thông luôn là vấn đề nhức nhối và ảnh hưởng trực tiếp đến các thành phố lớn Thành phố Hồ Chí Minh cũng không là ngoại lệ, số lượng phương tiện cá nhân ngày 1 tăng theo dân số lẫn nhu cầu đi lại ngày càng tăng nhanh hơn so với việc phát triển cơ sở hạ tầng giao thông Hậu quả

là nạn kẹt xe ngày càng nghiêm trọng, và các giải pháp hiện tại vẫn chỉ mang tính chất nhất thời Trong khi qui hoạch đô thị và phát triển giao thông công cộng là giải pháp cần thực hiện song song và ưu tiên hàng đầu, 1 trong số đó

là phát triển mạng lưới xe buýt để dần thay thế cho các phương tiện cá nhân

Tuy xe buýt không phải là 1 phương tiện mới, nhưng hiện tại số người

sử dụng vẫn còn chiếm tỉ lệ chưa cao, vì thế bên cạnh việc phát triển về qui

mô, cần có các công cụ hỗ trợ người dùng là 1 việc làm rất cần thiết

1.2 Mục tiêu của đề tài

Mục tiêu của đề tài là xây dựng hệ thống tìm đường xe buýt trên web giúp hành khách tìm ra các lộ trình phù hợp với từng nhu cầu cụ thể, đồng thời tạo ra hệ thống quản lý xe buýt cơ bản

- Tìm hiểu nghiệp vụ, thu thập thông tin các tuyến xe buýt trong thành phố

- Xây dựng dữ liệu bản đồ dành riêng xe buýt với sự hỗ trợ của các Map API hiện có

- Xây dựng giải thuật phù hợp với yêu cầu tìm kiếm

- Ứng dụng các Map API để minh họa kết quả trên web

Mục đích cuối cùng của đề tài là: giúp người dùng tìm được đường đi tối ưu nhất (bao gồm cả việc đi bộ, chuyển tuyến xe buýt) giữa 2 điểm bất kì trong thành phố

Trang 10

Bản đồ dành cho xe buýt là 1 phần không thể tách rời của bản

đồ giao thông đường bộ, mà bản đồ giao thông đường bộ hiện tại của thành phố Hồ Chí Minh rất phức tạp, và để xây dựng không hề đơn giản

Hình 2.1: Bản đổ xe buýt

Trang 11

Trang 9

Hình 2.2: Bản đồ giao thông đường bộ

Hiện tại các dịch vụ thông tin của nước đa đã đáp ứng tương đối tốt cho loại bản đồ giao thông đường bộ này, vậy thì tại sao ta không tận dụng chúng? Trong đó dịch vụ cung cấp tốt nhất và phi thương mại là Vietbando Maps API

Việc sử dụng lại các API được cung cấp phải đảm bảo sao cho

sự lệ thuộc của bản đồ xe buýt và các API là thấp nhất có thể, để tránh trường hợp rủi ro có thể xảy ra

Trong khuôn khổ đề tài này, chúng ta sẽ xây dựng cùng với loại Maps API như đã đề cập

2.1.2 Tổ chức dữ liệu bản đồ xe buýt

Dữ liệu bản đồ gồm có các thực thể cơ bản như sau:

Điểm mấu chốt của loại bản đồ này, theo như thực tế đã thấy, thì việc thể hiện các luồng xe buýt là quan trọng nhất Người ta xác

Trang 12

Trang 10

định các tuyến xe qua các con đường lớn, các đoạn thẳng chung, qua

đó giúp người dùng hình dung ra tuyến đường mà xe buýt đi qua

Thế nhưng, chúng ta cần 1 loại bản đồ có thể đáp ứng như cầu tìm kiếm bằng máy tính, nó đói hỏi sự rõ ràng, chính xác và cố định, mấu chốt của bài toán là đồ thị, nên đỉnh là yếu tố quan trọng nhất

Bản đồ được tổ chức dưới dạng đồ thị, và thực tế được mô tả như sau:

số nhà, tên đường, tên quận

độ, vĩ độ

Là các trạm dừng xe buýt, các bến

đỗ đầu tuyến và cuối tuyến Vì có chung tính chất, nên gọi chung là trạm dừng xe buýt (sau đây gọi tắt

là “trạm”)

Tập đỉnh

Là những đường liên thông giữa các trạm với nhau, có độ dài và hướng xác định

Tập cung

Đồ thị có

hướng

Trang 13

Trang 11

Thông tin đường đi giữa 2 trạm:

Để bài toán trở nên đơn giản hơn, ta qui ước giữa 2 trạm cho duy nhất 1 đường đi có hướng từ trạm này đến trạm kia

Như vậy giữa 2 trạm gần nhau sẽ có 1 cung có hướng

Cung này bao gồm:

Trang 14

Trang 12

Hình 2.4: cung dùng để vẽ chi tiết

Thông tin của 1 tuyến xe buýt bao gồm:

dữ liệu

Số tuyến

Mỗi tuyến xe trong thành phố đều được đặt số giúp người dùng dễ nhớ hơn

Tên tuyến

ví dụ Sài Gòn – Suối Tiên, … hoặc Suối Tiên – Sài Gòn là 2 tuyến xe khác nhau trong dữ liệu

Chuỗi các trạm liên tiếp nhau mà tuyến xe

đó đi qua

Chỉ cần xác định tập hợp theo thứ tự các trạm mà tuyến xe đó đi qua là đủ

để thao tác đầy đủ

Trang 15

Trang 13

Hình 2.5: chỉ cần biết danh sách các trạm, có thể xác định được 1

tuyến xe buýt

Hình 2.6: kết hợp với chi tiết đường đi giữa 2 trạm, tạo ra 1

tuyến xe buýt hoàn chỉnh trên bản đồ

Trang 16

Trang 14

Đến đây, ta đã có 1 bản đồ xe buýt cơ bản, mà khi nhìn vào đó người ta có thể hình dung được vị trí trạm xe buýt và các trạm mà 1 tuyến xe buýt đi qua

2.2 Phân tích yêu cầu người dùng

Người dùng đòi hỏi ở chương trình này gợi ý được đường đi tối ưu nhất, đó là: Chỉ cần biết địa chỉ điểm đầu và điểm cuối, từ đó chương trình vạch ra phương hướng tối ưu nhất Vậy thế nào là tới ưu nhất?

Hoàn toàn không có 1 hằng số nào cho sự tối ưu, ta có 1 ví dụ sau:

H là sinh viên trường ĐH Giao Thông Vận Tải TPHCM, nhà của H ở gần chợ Bà Chiểu, Bạch Đằng, Bình Thạnh H không có xe riêng mà đi học bằng xe buýt Hàng ngày H đi học về bằng cách đi xe số 14, số đến xe 55

Nhưng vì là 1 sinh viên nên cuối tháng H còn ít tiền để tiêu, và H quyết định chỉ đi 1 tuyến xe buýt thôi bằng cách đi bộ 1 đoạn rồi đón xe 55

về nhà

Hình 2.7: cùng điểm đầu và cuối nhưng có nhiều con đường đi

Trang 17

Trang 15

Như vậy với việc đi bộ để hạn chế 1 tuyến xe buýt, đã giúp h tiết kiệm hơn trong chi phí sinh hoạt

Qua ví dụ trên ta nhận thấy, việc tìm đường theo yêu cầu người dùng,

để mang lại tính tiện lợi, ngoài yếu tố các tuyến xe buýt, chương trình cần phải đánh giá được thêm 2 yếu tố không thể tách rời: quãng đường đi bộ, và

sự chuyển tuyến

- Quãng đường đi bộ: Việc phải đi bộ đối với hành khách đi xe

buýt là điều hoàn toàn không thể tránh khỏi, đó là 1 hệ số không thể bỏ qua trong lộ trình của người dùng

- Chuyển tuyến: việc chuyển tuyến xe tuyến là mối quan tâm lớn

nhất đối với người dùng, nếu như khi đi xe máy, hay đi bộ, người dùng quan tâm nhất là quãng đường ngắn nhất, thì đối với xe buýt, việc chuyển tuyến ít nhất là 1 trong những ưu tiên hàng đầu

Như vậy, xét về khía cạnh người dùng, phải lưu tâm đến 2 yếu tố này

2.3 Giải thuật tìm kiếm đường đi ngắn nhất

Trong khoa học máy tính, A* (đọc là A sao) là một thuật toán tìm kiếm trong đồ thị Thuật toán này tìm một đường đi từ một nút khởi đầu tới một nút đích cho trước (hoặc tới một nút thỏa mãn một điều kiện đích) Thuật toán sử dụng một "đánh giá heuristic" để xếp loại từng nút theo ước lượng về tuyến đường tốt nhất đi qua nút đó Thuật toán này duyệt các nút theo thứ tự của đánh giá heuristic này Do đó, thuật toán A* là một ví dụ của tìm kiếm theo lựa chọn tốt nhất (best-first search)

Thuật toán A* được mô tả lần đầu vào năm 1968 bởi Peter Hart, Nils Nilsson, và Bertram Raphael Trong bài báo của họ, thuật toán được gọi là thuật toán A; khi sử dụng thuật toán này với một đánh giá heuristic thích hợp

sẽ thu được hoạt động tối ưu, do đó mà có tên A*

Trang 18

Trang 16

Mã giã giải thuật A*:

function A_Start(begin, end)

result = true;

break;

} closeList.Push(node);

for (n in Tn(node)) {

if (!openList.InList(n) && !closeList.InList(n)) {

openList.Push(n);

n.Cost = node.Cost + Edge(node, n).Value + n.Huerictis; BeforeOfNode(n, node);

} else if (!closeList.InList(n) && n.Cost > node.Cost + Edge(node, n).Value + n.Huerictis)

{

n.Cost = node.Cost + Edge(node, n).Value + n.Huerictis; BeforeOfNode(n, node);

} }

Trang 19

Ứng dụng vào giải thuật, với ý tưởng đơn giản, ta hiện thực như sau:

- Tập đỉnh: Tập các trạm xe buýt

- Tập cung: Tập các quãng đường giữa 2 trạm

- H’: khoảng cách đường chim bay giữa trạm hiện tại tới trạm cuối cùng

- G: khoảng đồ dài cung

 Như vậy, ta đã hiện thực được bài toán 1 cách đơn giản

Hình 2.8: Đồ thị đơn giản

Trang 20

Trang 18

Với cách hiện thực này, sẽ giải quyết được vấn đề: tìm đường

đi ngắn nhất giữa 2 trạm xe buýt bất kì, và chỉ dừng lại ở đó, ta không thể đưa hệ số đi bộ và hệ số chuyển tuyến vào trong giải thuật

2.4.2 Vận dụng triệt để

Cần phải giải quyết 2 vấn đề sau:

+ Sự chuyển tuyến trong quá trình tìm kiếm + Độ dài cung

Trong quá trình tìm kiếm, làm sao nhận biết đường đi hiện tại

đã qua bao nhiêu tuyến xe?

Ta tiến hành mở rộng đồ thị theo cách sau:

Mỗi trạm xe sẽ được biến thành nhiều trạm, mỗi trạm sẽ được gắn cờ dùng để biểu thị với qui ước: cờ -1 là đi bộ, cờ còn lại là mã số tuyến xe đi qua, như hình sau:

Ví dụ: Trạm 002 dưới đây có 2 tuyến xe buýt đi qua

Trang 21

+ Trạm 002, cờ 14B: trạm có tuyến xe 14B đi qua

+ Trạm 002, cờ 91B: trạm có tuyến 91B đi qua

Trang 22

Trang 20

Hình 2.10: 1 trạm tách thành nhiều đỉnh

Nhìn vào đây, ta có thể suy ra 1 số tính chất như sau:

Nếu đi đến trạm 002 bằng xe 14B, có thể xuống xe bằng cách chuyển qua -1

Nếu đi đến trạm 002 bằng xe 91B, có thể xuống xe bằng cách chuyển qua -1

Nếu đi đến trạm 002 bằng đi bộ, có thể lên xe 14B hoặc 91B để

đi tiếp

Vậy, nếu đến trạm 002 bằng xe 14B, và muốn chuyển qua xe 91B thì phải qua trung gian là -1, tức là người đi đường phải bước xuống xe (chuyển sang trạm thái đi bộ) rồi lại lên xe 91B Việc từ trạng thái đi bộ lên xe 91B là đánh dấu 1 lần chuyển tuyến

Trang 23

Trang 21

Như vậy, ta sẽ có đồ thị và liên kết như sau:

Hình 2.11: đồ thị sau khi tách đỉnh

+ Đi bộ và chuyển tuyến

Đi bộ là đoạn đường giữa những trạm có cờ là -1

Chuyển tuyến là đoạn đường bắt đầu với cờ -1, và kết thúc là 1

cờ khác

Trang 24

Trang 22

Hình 2.12: Nhận biết đi bộ và chuyển tuyến

Như vậy ta đã xác định được trường hợp đi bộ và chuyển tuyến

Ta có công thức tính chi phí như sau:

Xét tiếp ví dụ trên, gọi độ dài quãng đường từ trạm 002 đến

001 là x, hệ số đi bộ là a, và hệ số chuyển tuyến là b, ta có các khoảng cách như sau:

Chi phí = khoảng cách * hệ số đi bộ + hệ số chuyển tuyến

Trang 25

Trang 23

Hình 2.13: Độ dài cung trong đồ thị

Với đồ thị này, ta hoàn toàn có thể áp dụng giải thuật A* bình thường và tìm ra kết quả

Từ đây, có thể suy ra được đường đi cụ thể, và hướng dẫn chi tiết bằng lời văn

Trang 26

Nếu bạn có một tấm ảnh bản đồ cho phép lưu trữ trên máy tính, thì việc đưa lên Web với môi trường Internet của thế giới hiện tại sẽ là một vấn đề không dễ dàng cho việc tải bản đồ về máy người dùng, zoom to bản đồ để nhìn thấy một vị trí nào đó rõ ràng hơn, hoặc việc kéo rê bản đồ tới một vị trí khác, và v v Mỗi tác động của người dùng lên bản đồ ta đều phải tải lại nôi dung Web.Chỉ với một tấm ảnh khoản 100MB, thì việc tải đi, tải lại cũng đã chậm, và khó khăn, không thuận lợi cho người sử dụng

3.1.2 Cách giải quyết

Đầu tiên ta cần có một tấm ảnh bản đồ ngoài thực tế được lưu trong máy tính với chất lượng ảnh tốt, sau đó ta dùng một phần một nào đó cắt nhỏ tấm bản đồ ra thành tường ảnh có kích thước xác định trước và bằng nhau

Mỗi lần ta tải bản đồ về máy người dùng, ta chỉ cần tải những tấm ảnh nằm trong khung nhìn của người dùng Như vậy sẽ không cần tải hết một tấm ảnh khổng lồ, giảm đi rất nhiều lượng dữ liệu phải truyền và tăng tốc độ tương tác với người sử dụng

Việc cắt một tấm ảnh lớn thành những tấm ảnh nhỏ tuỳ thuộc vào mức độ zoom hiện tại, với một mức một zoom sẽ có một lượng ảnh xác định cần tải về máy

Ngày đăng: 11/04/2016, 05:35

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w