MỤC LỤC
1
2
LỜI MỞ ĐẦU
Hiện nay, tình trạng giao thông ngày càng phức tạp. Vấn đề đặt ra là làm sao có thể tìm
thấy đường đi tốt để thuận tiện trong việc đi lại. Đặc biệt, vào các đợt thi Đại học, các
thí sinh hầu hết từ những vùng miền
khác nhau đến các cụm thi nên việc hướng dẫn đường đi cho các bạn là một vấn đề
đáng lưu tâm.
Với sự bùng nổ của Internet, rất nhiều bản đồ đã được xây dựng. Tuy nhiên, hầu hết
các bản đồ nổi tiếng như Google Maps, Vietbando, … hướng tất cả mọi người dùng
nên không thể hướng dẫn chi tiết cho một nhóm người nào đó, cụ thể là phụ huynh, thí
sinh trong kì thi đại học.
Là sinh viên của trường Đại học Giao thông vận tải Thành phố Hồ Chí Minh, chúng tôi
đã từng là thí sinh dự thi đại học, và chúng tôi cũng phần nào hiểu được sự khó khăn
trong việc tìm đường đến các cụm thi. Và điều này thôi thúc chúng tôi quyết định xây
dựng một ứng dụng mới nhằm hỗ trợ cho bậc phụ huynh, thí sinh và các tình nguyện
viên tham gia “Tiếp sức mùa thi” của trường Đại học Giao Thông Vận Tải Thành Phố
Hồ Chí Minh tại khu vực quận Bình Thạnh, thành phố Hồ Chí Minh.
Chúng tôi rất vui vì đã đóng góp một phần sức mình giúp đỡ nhà trường trong kì thi
đại học sắp tới.
TÓM TẮT NỘI DUNG
Chương 1: Tổng quan về ứng dụng hướng dẫn giao thông trong tiếp sức mùa thi
Chương 2: Giới thiệu google maps api
Chương 3: Xây dựng ứng dụng
3
Chương 4: Kết luận
Chương 5: Hướng phát triển đề tài
Tài liệu tham khảo
LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn thầy giáo Thạc sỹ Nguyễn Lương Anh Tuấn đã giúp
đỡ và hướng dẫn tận tình trong việc xây dựng ứng dụng. Chúng em cũng gửi lời cảm
ơn đến Ban lãnh đạo nhà trường đã tổ chức cuộc thi “Ý tưởng sinh viên giao thông”
đầy bổ ích.
4
CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG HƯỚNG DẪN ĐƯỜNG ĐI TỐT
TRONG VIỆC HỖ TRỢ CÁC THÍ SINH VÀ PHỤ HUYNH TRONG CHƯƠNG
TRÌNH TIẾP SỨC MÙA THI
1.1 Nhược điểm của ứng dụng khác
1.1.1 Đối với các bản đồ thông thường:
Các bản đồ thông thường không thể cập nhật cho người sử dụng tình
trạng đường đi mà chúng ta đang muốn đến. Mặt khác, bản thông thường không
thể cho thấy đường đi một cách trực quan cũng như không thể ước lượng thời
gian đi được.
1.1.2 Đối với một số hệ thống online:
Các hệ thống bản đồ online hiện nay hầu hết là những hệ thống lớn như
Google Maps, Yahoo Maps… Đây vừa là ưu điểm, vừa là nhược điểm của các
hệ thống này vì chúng được xây dựng cho tất cả mọi người dùng nên không thể
hướng dẫn cụ thể cho thí sinh, phụ huynh và các tình nguyện viên tiếp sức mùa
thi của trường Đại học Giao thông vận tải thành phố Hồ Chí Minh.
1.2 Giải pháp
5
Để có thể giúp đỡ các thí sinh, phụ huynh và các bạn tình nguyện viên trong
việc hướng dẫn đường đi đến các cụm thi (hoặc cụm tiếp sức mùa thi nhưng không
phải cụm thi) của trường Đại học Giao thông vận tải thành phố Hồ Chí Minh, nhóm
chúng tôi đã xây dựng một ứng dụng dựa trên Google Maps API. Ứng dụng này sẽ
giúp tìm một đường đi tốt.
Vậy thế nào là một đường đi tốt? Đường đi tốt là một đường đi thông thường
phải đảm bảo ít nhất một trong những tiêu chuẩn: Có thời gian đi ngắn, ít gặp
chướng ngại vật, tốn ít chi phí, dễ tìm, v.v. Tùy theo mục đích của con người mà họ
sẽ hiểu đường đi tốt là khác nhau với những tiêu chuẩn khác nhau. Chẳng hạn:
Người bán hàng sẽ cho rằng đường đi nào bán được nhiều sản phẩm của mình sẽ là
đường tốt. Người phát thư cho rằng cần đường đi sao cho tiết kiệm chi phí, có đi
qua các điểm cần đưa thư mà tổng thời gian ngắn là đường đi tốt. v.v. Vậy thì, đối
với thí sinh và phụ huynh- những người dùng mà phần lớn là người không quen
thuộc đường đi thì đoạn đường như thế nào là tốt? Theo nhóm chúng tôi, đó là con
đường dễ tìm (không phải đường hẻm), thời gian đi và khoảng cách là tương đối
ngắn.
1.3 Lựa chọn công nghệ
1.3.1 Ngôn ngữ sử dụng
1.3.2
Ngôn ngữ chính được sử dụng: HTML
Môt tả ngôn ngữ
HTML là từ viết tắt của Hypertext Markup Language, là ngôn ngữ đánh
dấu siêu văn bản. HTML rất dễ sử dụng và được dùng phổ biến. Một file HTM
là một file text gồm nhiều thẻ (tag) nhỏ, và chúng hướng dẫn trình duyệt
(Browser) phải hiển thị trang web đó như thế nào.
6
CHƯƠNG 2: GIỚI THIỆU VỀ GOOGLE MAPS API
2.1 Google Maps API là gì?
Google maps là 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
đạp, 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.
Maps API là gì?
Đó là những phương thức cho phép một website B sử dụng dịch vụ bản
đồ của site A (gọi là Maps API) và nhúng vào website của mình (site B).
Site A ở đây là Google Maps, site B là các trang web cá nhân hoặc tổ
chức muốn sử dụng dịch vụ của Google, có thể rê chuột, room đánh dấu
trên bản đồ …
Các ứng dụng xây dựng trên maps được nhúng vào trang web cá nhân
thông qua các thể javascripts do vậy việc sử dụng API google rất dể
dàng.
2.2 Một số ứng dụng có thể xây dựng:
Đánh dấu các điểm trên bản đồ cùng các thông tin cho địa điểm: các khu vui
chơi giải trí, nhà hàng, khách sạn, các quán ăn ngon,các shop quần áo nữ
trang, …
Chỉ dẫn đường đến các địa điểm cần tìm, chỉ dẫn đường giao thông công
cộng, có thể là các địa điểm cung cấp như trên.
Khoanh vùng khu vực: các trung tâm kinh tế, khu đô thị, khi ô nhiễm, …
Tình trạng thông các khu vực …
7
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG
3.1 Tạo bản đồ:
Để load bản đồ, chúng tôi đã dùng một đoạn Javascript đặt trong thẻ <head>
như sau:
src=" />Tiếp đến cần một hàm khởi tạo map như sau:
<script type="text/javascript">
var map;
function initialize()
{
var Options =
{
zoom: 14,
center: new google.maps.LatLng(10.804822, 106.716670),
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("div_id"),
Options);
</script>
8
Trong đó: Tùy chọn Options có những thuộc tính sau:
Center: Là một điểm trung tâm của bản đồ mà chúng ta muốn xây dựng với hai thông
số là vĩ độ (Latitudes) và kinh độ (Longitudes).
Zoom: Là độ phóng đại của bản đồ.
mapTypeID: loại bản đồ được hiển thị sau khi load xong, bao gồm 4 loại là roadmap
(bản đồ đường đi), satellite (bản đồ vệ tinh), hybrid (bản đồ phối hợp 2 loại trên) và
terrain (bản đồ địa hình).
Đối tượng map được tạo ra có những tùy chọn trên và được xác định bởi id div_id.
Sau đâu là hình kết quả:
9
3.2 Đánh dấu các cụm thi:
Để đánh dấu một cụm thi, việc đầu tiên chúng ta cần xác định tọa độ của các điểm thi.
Sau đây là bảng tọa độ các cụm thi của trường Đại học Giao thông vận tải Thành phố
Hồ Chí Minh:
Tên trường
Trường
Địa chỉ
ĐH
Tọa độ
GTVT Số 2 đường D3 khu Văn 10°48'17.4"N
TPHCM CS1
thánh bắc, p25 quận Bình 106°43'00.0"E
Thạnh HCM
Trường
ĐH
10.804822, 106.716679
GTVT Số 70 đường Tô ký, 10°51'57.4"N
TPHCM CS3
phường Tân Chánh Hiệp, 106°37'05.3"E
quận 12
THCS Bình Quới Tây
10.865940, 106.618149
376A Bình Quới, P.28, Q. 10°49'20.6"N
Bình Thạnh, Tp. Hồ Chí 106°44'01.4"E
Minh
Tiểu học Bình Quới Tây
10.822394, 106.733733
376 Bình Quới, P.28, Q. 10°49'23.8"N
Bình Thạnh, Tp. Hồ Chí 106°43'53.6"E
Minh
Tiểu học Thanh Đa
Khu
10.823285, 106.731545
2
Cư
Xá Thanh 10°49'01.8"N
Đa, Thanh Đa, Phường 27, 106°43'11.0"E
Quận Bình Thạnh, Thành 10.817155, 106.719711
phố Hồ Chí Minh
10
THCS Thanh Đa
Cạnh lô L, cư xá Thanh 10°48'50.2"N
Đa,
Phường
27,
Bình 106°43'12.3"E
Thạnh, Thành Phố Hồ Chí 10.813935, 106.720094
Minh
THPT Thanh Đa
Cạnh lô G, CX Thanh Đa, 10°48'57.1"N
P.27, Q. Bình Thạnh
106°43'18.3"E
10.815853, 106.721746
Tiểu học Chu Văn An
Địa chỉ 2 Đường Số 3, 10°48'45.6"N
Quận Bình Thạnh, Thành 106°42'21.6"E
phố Hồ Chí Minh
THCS Đống Đa
10.812657, 106.705999
địa chỉ 217, Đường D2, 10°48'33.0"N
Phường
25, Quận
Bình 106°42'58.6"E
Thạnh, Thành phố Hồ Chí 10.809167, 106.716268
Minh
THCS Lê Văn Tám
địa chỉ 107H3, Chu Văn 10°48'10.8"N
An, Phường 26, Quận 106°41'53.0"E
Bình Thạnh, Thành phố 10.803001, 106.698068
Hồ Chí Minh
THCS Cù Chính Lan
Cạnh lô XI, CX Thanh Đa, 10°48'57.0"N
P. 27, Q. Bình Thạnh, Tp. 106°43'02.4"E
Hồ Chí Minh
THPT Nguyễn Hữu Cầu
10.815841, 106.717345
Nguyễn Ảnh Thủ Tân 10°52'00.5"N
Xuân, Hóc Môn
106°36'52.6"E
10.866801, 106.614611
11
KTX GTVT HCM (Có 17/12 Trần Não, quận 2, 10°47'11.6"N
cụm tiếp sức nhưng không HCM
106°43'46.1"E
phải cụm thi)
10.792285, 106.7319231
Sau khi lấy được tọa độ, chúng tôi đánh dấu các điểm đó trên bản đồ. Cách làm
này được gọi là tạo Marker.
var Marker1 = new google.maps.Marker(
{
map:map,
position:new google.maps.LatLng(10.792285, 106.7319231),
title: "KTX DH GTVT TP HCM",
draggable:true,
animation: google.maps.Animation.DROP
}
);
Trong đó:
-
Position là thuộc tính quan trọng nhất và bắt buộc phải có quy định tọa độ đánh
-
dấu
Map là thuộc tính tùy chọn và khai báo như trên sẽ thay thế cho
-
Markers.setMap(map).
Icon là thuộc tính tùy chọn nhằm thay thế hình ảnh mặc định
Title là tiêu đề
Draggable: thuộc tính động, nếu nhận giá trị true
Animation: kiểu động.
Sau đó, chúng tôi tạo một infowindow chính là một cửa sổ chứa thông tin:
var TenC="THCS Đống Đa, SDT: 123456";
//thong tin bo sung ghi vao day
var infowindow = new google.maps.InfoWindow(
{
position:new google.maps.LatLng(10.809167, 106.716268),
12
content:TenC,
maxWidth:800
});
infowindow.open(map, Marker1);
Sau đây là hình kết quả:
3.3 Xác định vị trí hiện tại:
Để tìm được đường đi, ta phải xác định được vị trí hiện tại bằng cách dùng hàm
getLocation() như sau:
function getLocation()
13
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else{x.innerHTML="Geolocation is not supported by this browser.";}
}
function showPosition(position)
{
x.innerHTML="Latitude: " + position.coords.latitude +
"
Longitude: " + position.coords.longitude;
}
</script>
</body>
</html>
Hàm này sẽ trả về tọạ độ vị trí của chúng ta:
14
Trong đó Latitude là vĩ độ, Longgitude là kinh độ.
3.4 Chỉ dẫn đường trên bản đồ:
Chúng tôi sử dụng service google và chức năng dẫn đường direction. Cụ thể với
đoạn code javascripts như sau:
var request = {
origin:star,
destination: end1,
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
15
Khi sử dụng đoạn Javascript trên, chúng ta sẽ vẽ được một đoạn đường giữa hai
điểm cố định.
Sau đó chúng tôi xác định được thời gian đi và độ dài đoạn đường
var service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
origins: [star,star],
destinations: [end1,end1],
travelMode: google.maps.TravelMode.WALKING,
avoidHighways: false,
avoidTolls: false
}, callback);
}
function callback(response, status) {
if (status == google.maps.DistanceMatrixStatus.OK) {
var origins = response.originAddresses;
16
var destinations = response.destinationAddresses;
var outputDiv = document.getElementById('outputDiv');
outputDiv.innerHTML = '';
var results = response.rows[1].elements;
var thoigian= results[1].duration.text;
var khoangcach = results[1].distance.text
outputDiv.innerHTML = 'Khoảng cách: '+ khoangcach + ' Thời Gian Đi: ' + thoigian;
}
Sau khi hoàn chỉnh code, chúng tôi dùng CSS, CSS3 để chỉnh sửa giao diện cho
hợp lý hơn. Bố cục gồm 2 phần:
+ Bên trái là khung chọn đường đi và thông tin khoảng cách và thời gian
+ Bên phải là Map.
Người dùng sẽ chọn cụm thi mà mình muốn đến. Sau đó ứng dụng sẽ xác định
được tọa độ bạn đứng để có thể chỉ dẫn một đường đi tốt từ vị trí của bạn đến cụm thi
đã chọn. Người dùng có thể xem bản đồ thông thường ở chế độ mặc định, hoặc xem
bản đồ vệ tinh bằng cách ấn vào tab vệ tinh. Nếu muốn phóng to hoặc thu nhỏ hình
ảnh, người dùng có thể kéo thanh thu phóng phía bên trái của bản đồ.
17
Thông tin về cụm thi sẽ được hiển thị, do đó, phụ huynh và thí sinh có thể đến đúng địa
chỉ và cũng có thể liên lạc tới các cụm tiếp sức nếu cần.
CHƯƠNG 4: KẾT LUẬN
4.1 Đánh giá chung về ứng dụng:
So với với các ứng dụng trước, thì ứng dụng này là cái mới trong việc hỗ trợ
chương trình “tiếp sức mùa thi”.
Đáp ứng được nhu cầu thực tế, mang lại lợi ích cho các thí sinh trong kỳ thi
tuyển sinh đại học.
4.2 Kết quả đạt được: ứng dụng tương đối hoàn chỉnh về các chức năng cơ bản:
Chạy được trên các trình duyệt, giao diện dể nhìn, dể sử dụng.
18
Ứng dụng hướng dẫn cho người dùng một đường đi tốt.
4.3 Hạn chế:
Ứng dụng bắt buộc người dùng phải có kết nối Internet
Thời gian đi chưa thực tế vì chưa thể xác định chính xác tình trạng của các
đoạn đường.
Chưa mô tả được giao thông trên đường đến các cụm thi.
CHƯƠNG 5: HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Xây dựng trang web hoàn thiện hơn về mặt giao diện cũng như chức năng.
Xây dựng thêm cơ sở dữ liệu để có thể lấy được thông tin chính xác hơn về các
đoạn đường.
Mở rộng quy mô không chỉ hướng dẫn đường đi đến các cụm tiếp sức mùa thi tại
trường Đại học Giao thông vận tải thành phố Hồ Chí Minh mà còn cho các trường
khác trên địa bàn thành phố.
Phát triển lên cho các thiết bị di động sự dụng định vị GPS
TÀI LIỆU THAM KHẢO
Tài liệu mà chúng tôi tham khảo được lấy từ:
1. />2. />
19