Professional Documents
Culture Documents
Đồ Án Tốt Nghiệp Mẫu
Đồ Án Tốt Nghiệp Mẫu
ĐỒ ÁN TỐT NGHIỆP
ĐỒ ÁN TỐT NGHIỆP
BỘ GIÁO DỤC VÀ ĐÀO TẠO CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC NHA TRANG Độc lập – Tự do – Hạnh phúc
QUYẾT ĐỊNH
Điều 1. Giao cho sinh viên: Đậu Quang Lộc MSSV: 59131309. Lớp: 59.CNTT-1.
Khoá 59. Ngành: Công nghệ Thông tin.
Thực hiện đồ án tốt nghiệp: XÂY DỰNG WEBGIS PHỤC VỤ TRA CỨU THÔNG TIN
NHÀ TRỌ TRỰC TUYẾN THÀNH PHỐ NHA TRANG.
Nội dung thực hiện:
Thu thập thông tin, xây dựng cơ sở dữ liệu nhà trọ xung quanh khu vực Đại học Nha
Trang.
Thu thập, xử lý các lớp dữ liệu liên quan: giao thông, trạm chờ xe buýt, chợ, trường đại
học - cao đẳng, cơ sở y tế, ngân hàng - ATM và các địa điểm tiện ích khác.
Xây dựng WebGIS hiển thị bản đồ phân bố nhà trọ cùng các chức năng tìm kiếm và tra
cứu thông tin nhà trọ.
Nơi thực hiện: Bộ môn Hệ thống Thông tin, Khoa Công nghệ Thông tin – Trường ĐH Nha
Trang.
Thời gian thực hiện: Từ ngày 15/03/2021 đến ngày 26/06/2021.
Nộp báo cáo đồ án trước ngày: 17/07/2021 cho Bộ môn Hệ thống Thông tin.
Điều 2. Giảng viên Nguyễn Thủy Đoan Trang hướng dẫn sinh viên thực hiện đồ án tốt
nghiệp theo Quy chế của Bộ Giáo dục & Đào tạo và Hướng dẫn thực hiện Quy chế của Trường.
Trưởng Bộ môn Nguyễn Đức Thuần định kỳ báo cáo Trưởng khoa việc thực hiện công
tác tốt nghiệp của sinh viên và giảng viên hướng dẫn được giao quản lý.
Sinh viên Đậu Quang Lộc có trách nhiệm chấp hành đúng Quy chế của Bộ Giáo dục &
Đào tạo, Quy định của Trường và nơi thực tập trong quá trình làm công tác tốt nghiệp, hoàn
thành đồ án tốt nghiệp đúng thời gian quy định.
Điều 3. Sinh viên có tên trong Điều 1, Giảng viên và Trưởng bộ môn có tên trong Điều 2
chịu trách nhiệm thi hành Quyết định này./.
TL.HIỆU TRƯỞNG
TRƯỞNG KHOA CNTT
Điểm hình thức: ……/10 Điểm nội dung: ......../10 Điểm tổng kết: ….…/10
+ Đối với ĐA/KLTN:
Kết luận sinh viên: Được bảo vệ: €
PHIẾU THEO DÕI TIẾN ĐỘ VÀ ĐÁNH GIÁ ĐỒ ÁN / KHÓA LUẬN TỐT NGHIỆP
(Dùng cho CBHD và nộp cùng báo cáo ĐA/KLTN của sinh viên)
Tên đề tài: XÂY DỰNG WEBGIS PHỤC VỤ TRA CỨU THÔNG TIN NHÀ TRỌ TRỰC
TUYẾN THÀNH PHỐ NHA TRANG.
Chuyên ngành: Công nghệ Thông tin
Họ và tên sinh viên: Đậu Quang Lộc. Mã sinh viên: 59131309
Người hướng dẫn (học hàm, học vị, họ và tên): ThS. Nguyễn Thủy Đoan Trang
Cơ quan công tác: Khoa Công nghệ Thông tin – Trường Đại học Nha Trang
Phần đánh giá và cho điểm của người hướng dẫn (tính theo thang điểm 10)
Mô tả mức chất lượng
Tiêu chí Trọng số Không
Giỏi Khá Đạt yêu cầu Điểm
đánh giá (%) đạt
9 - 10 7 - 8 5-6 <5
Xây dựng đề cương nghiên cứu 10
Tinh thần và thái độ
10
làm việc
Kiến thức và kỹ năng làm việc 10
Nội dung và kết quả đạt được 40
Kỹ năng viết và trình bày báo
30
cáo
ĐIỂM TỔNG
Ghi chú: Điểm tổng làm tròn đến 1 số lẻ.
Nhận xét chung (sau khi sinh viên hoàn thành ĐA/KLTN):
…………………………………………………………………………………………….
…………………………………………………………………………………………….
…………………………………………………………………………………………………
………….
………………………………………………………………………………………………….
Đồng ý cho sinh viên: Được bảo vệ: € Không được bảo vệ: €
Khánh Hòa, ngày…….tháng 07 năm 2021
Cán bộ hướng dẫn
(Ký và ghi rõ họ tên)
II. Phần nhận xét cụ thể (dựa theo phiếu chấm điểm và khung tiêu chí đánh giá theo
Rubric)
II.1. Hình thức thuyết minh (tỉ trọng 30%)
* Trình bày (Rõ ràng, mạch lạc? Biểu bảng, hình vẽ trình bày rõ ràng, đúng quy cách?…)
…………………………………………………………………………………………………
…………………………………………………………………………………………………
* Bố cục và lập luận (Bố cục hợp lý? Tỉ trọng giữa các phần? Cơ sở lập luận?...)
…………………………………………………………………………………………………
…………………………………………………………………………………………………
* Văn phong (Gọn gàng, súc tích hay rườm rà, khó hiểu? Lỗi văn phạm và chính tả?…)
…………………………………………………………………………………………………
II.2. Nội dung thuyết minh (tỉ trọng 30%)
* Mục tiêu nghiên cứu (Trình bày rõ ràng? Ý nghĩa khoa học và thực tiễn? Tính khả thi?...)
…………………………………………………………………………………………………
…………………………………………………………………………………………………
* Tổng quan tài liệu (Phân tích và đánh giá? Độ tin cậy và chất lượng nguồn tài liệu?…)
…………………………………………………………………………………………………
…………………………………………………………………………………………………
* Phương pháp nghiên cứu (Hiện đại? Phù hợp với mục tiêu và nội dung nghiên cứu? Mô tả?
Đánh giá và so sánh với các phương pháp khác?…)
…………………………………………………………………………………………………
…………………………………………………………………………………………………
II.3. Kết quả nghiên cứu (tỉ trọng 20%)
* Kết quả đạt được (Độ tin cậy? Tính sáng tạo? Giá trị khoa học và thực tiễn?...)
…………………………………………………………………………………………………
…………………………………………………………………………………………………
* Kết luận (Đáp ứng mục tiêu nghiên cứu? Quan điểm của cá nhân? ...)
…………………………………………………………………………………………………
…………………………………………………………………………………………………
4. MỨC ĐỘ TRÍCH DẪN VÀ SAO CHÉP (tỉ trọng 20%)
* Mức độ trích dẫn (Đúng quy định? Trung thực, đầy đủ, rõ ràng?Sắp xếp tài liệu tham
khảo?...)
…………………………………………………………………………………………………
* Mức độ sao chép (Tỉ lệ sao chép? Hình thức sao chép?...)
…………………………………………………………………………………………………
Tôi xin được cam đoan: Đề tài tốt nghiệp “Xây dựng WebGIS phục vụ tra cứu
thông tin nhà trọ trực tuyến thành phố Nha Trang” là kết quả dựa trên sự cố gắng, nỗ
lực của bản thân với sự hướng dẫn nhiệt tình của ThS. Nguyễn Thủy Đoan Trang. Các số
liệu và kết quả nghiên cứu trong đề tài là trung thực và hoàn toàn không sao chép hoặc sử
dụng kết quả của đề tài nghiên cứu nào tương tự.
Những phần sử dụng tài liệu tham khảo trong đồ án đã được trích dẫn đầy đủ.
Nếu phát hiện có sự sao chép kết quả nghiên cứu của đề tài khác, tôi xin chịu hoàn
toàn trách nhiệm và chịu kỷ luật của Khoa và Nhà trường đề ra.
Để hoàn thành đề tài tốt nghiệp này, trước hết em xin gửi đến quý thầy, cô Khoa
Công nghệ Thông tin - Trường Đại học Nha Trang lời cảm ơn chân thành.
Em xin gửi đến cô Nguyễn Thủy Đoan Trang, người đã tận tình hướng dẫn, giúp
đỡ em hoàn thành đề tài tốt nghiệp này lời cảm ơn sâu sắc nhất.
Mình cũng xin gửi lời cảm ơn tới các bạn sinh viên Trường Đại học Nha Trang đã
nhiệt tình tham gia khảo sát thông tin về nhà trọ và tình hình thuê trọ, hỗ trợ đóng góp
trong quá trình làm đề tài.
Trong quá trình nghiên cứu thực hiện đề tài, cũng như là trong quá trình làm bài
báo cáo tốt nghiệp, khó tránh khỏi sai sót, rất mong các thầy, cô bỏ qua. Đồng thời do
kiến thức cũng như kinh nghiệm thực tiễn của bản thân còn hạn chế nên đề tài, bài báo
cáo tốt nghiệp này khó thể không tránh khỏi những thiếu sót, em rất mong nhận được ý
kiến đóng góp từ quý thầy, cô để em học hỏi thêm được nhiều kinh nghiệm, cũng như kỹ
năng cần thiết.
Em xin chân thành cảm ơn!
TÓM TẮT ĐỒ ÁN
Với thời gian thực hiện đồ án còn hạn chế nên đề tài “Xây dựng WebGIS phục
vụ tìm kiếm nhà trọ trực tuyến thành phố Nha Trang” chỉ dừng ở mức tìm hiểu về
việc tích hợp Hệ thống Thông tin địa lý (GIS) trên nền Web; khảo sát, thiết kế cơ sở dữ
liệu thông tin nhà trọ xung quanh khu vực Đại học Nha Trang cũng như một số dữ liệu
liên quan; tìm hiểu về máy chủ mã nguồn mở GeoServer, hệ quản trị cơ sở dữ liệu
PostgreSQL/PostGIS và Framework mã nguồn mở OpenLayers. Từ những cơ sở trên xây
dựng chương trình WebGIS phục vụ tìm kiếm thông tin nhà trọ trực tuyến tại thành phố
Nha Trang.
Mục đích của việc tin học hóa việc phục vụ tìm kiếm nhà trọ là nhằm giúp cho
người dùng mà đặc biệt là sinh viên có thể dễ dàng truy cập WebGIS thông qua môi
trường Internet với những ưu điểm nổi bật như hiển thị trực quan, dễ tiếp cận, thông tin
truyền tải giàu hình ảnh, cho cái nhìn hệ thống tổng thể và toàn diện có thể hỗ trợ việc
cung cấp cũng như tiếp cận thông tin phòng trọ được tiến hành nhanh hơn, kết quả tốt
hơn, từ đó có thể dễ dàng đưa ra quyết định một cách hiệu quả hơn.
Do khả năng của bản thân còn hạn chế nên các chức năng của WebGIS và hệ
thống vẫn chưa hoàn thiện. Rất mong nhận được sự thông cảm và đóng góp ý kiến từ
Quý Thầy/Cô và các bạn.
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TÓM TẮT ĐỒ ÁN iii
MỤC LỤC iv
DANH MỤC HÌNH VẼ vi
DANH MỤC BẢNG viii
DANH MỤC CÁC TỪ VIẾT TẮT ix
MỞ ĐẦU 1
Chương 1. TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU 4
1.1 CƠ SỞ LÝ THUYẾT 4
1.1.1 Tổng quan về Hệ thống Thông tin Địa lý (GIS) 4
1.1.2 Tổng quan về WebGIS (Kết hợp GIS trên nền tảng Web) 8
1.1.3 Tổng quan về GeoServer 11
1.1.4 Tổng quan về PostgreSQL 12
1.1.5 Tổng quan về PostGIS 14
1.1.6 Tổng quan về OpenLayers Framework 14
1.2 CÁC NGÔN NGỮ ĐƯỢC SỬ DỤNG 15
1.2.1 Ngôn ngữ HTML5 (Ngôn ngữ đánh dấu siêu văn bản) 15
1.2.2 Ngôn ngữ CSS3 19
1.2.3 Ngôn ngữ JavaScript 21
1.2.4 Ngôn ngữ PHP 23
1.3 THỰC TIỄN VẤN ĐỀ LIÊN QUAN ĐẾN ĐỀ TÀI 25
1.4 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU 25
1.4.1 Tình hình nghiên cứu trên thế giới 25
1.4.2 Tình hình nghiên cứu trong nước 26
Chương 2. KHẢO SÁT HIỆN TRẠNG 28
2.1 HIỆN TRẠNG THÀNH PHỐ NHA TRANG 28
2.2 TÌNH HÌNH NHÀ TRỌ 29
2.3 TÌNH HÌNH ĐĂNG TIN VÀ TÌM NHÀ TRỌ HIỆN NAY 29
2.3.1 Tình hình đăng tin của các chủ nhà trọ 29
2.3.2 Tình hình tìm nhà trọ của sinh viên 31
2.4 ĐẶC TẢ BÀI TOÁN 32
Chương 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG 34
3.1 PHÂN TÍCH 34
3.1.1 Mô hình BFD 34
3.1.2 Mô hình DFD 35
3.1.3 Mô hình dữ liệu 37
3.1.3.1 Dữ liệu không gian 37
3.1.3.2 Dữ liệu thuộc tính 39
3.2 THIẾT KẾ 40
3.2.1 Thiết kế dữ liệu 40
3.2.1.1 Mô hình quan hệ (mô hình dữ liệu mức logic) 40
3.2.1.2 Mô hình dữ liệu vật lý (PDM) 41
3.2.1.3 Từ điển dữ liệu 42
3.2.1.4 Ràng buộc toàn vẹn 48
3.2.2 Thiết kế giao diện 55
3.2.2.1 Sơ đồ màn hình 55
3.2.2.2 Mô tả chi tiết một số màn hình tiêu biểu 56
3.2.3 Thiết kế xử lý 61
Chương 4. CÀI ĐẶT CHƯƠNG TRÌNH 64
4.1 THU THẬP VÀ TIỀN XỬ LÝ DỮ LIỆU 64
4.2 BIÊN TẬP BẢN ĐỒ 68
4.3 XÂY DỰNG HỆ THỐNG WEBGIS 71
Chương 5. HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG CHƯƠNG TRÌNH 72
5.1 HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG 72
5.2 KẾT QUẢ THỰC HIỆN ĐỀ TÀI 72
5.2.1 Xây dựng giao diện 72
5.2.1.1 Giao diện chung của trang Web (sinh viên, khách vãng lai) 72
5.2.1.2 Giao diện của người dùng (chủ trọ) 77
5.2.1.3 Giao diện của quản trị viên 78
5.2.2 Xây dựng chức năng 79
5.2.2.1 Đối với chủ trọ 79
5.2.2.2 Đối với quản trị viên 89
5.2.2.3 Đối với sinh viên và khách vãng lai 94
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 106
6.1 KẾT QUẢ ĐẠT ĐƯỢC 106
6.2 ƯU ĐIỂM 106
6.3 HẠN CHẾ 107
6.4 HƯỚNG PHÁT TRIỂN 107
6.5 KẾT LUẬN 107
TÀI LIỆU THAM KHẢO 108
PHỤ LỤC 110
1. PHỤ LỤC 1: HƯỚNG DẪN CÀI ĐẶT POSTGRESQL VÀ POSTGIS 110
2. PHỤ LỤC 2: HƯỚNG DẪN CÀI ĐẶT GEOSERVER VỚI TOMCAT XAMPP
116
3. PHỤ LỤC 3: TẠO DATABASE VỚI POSTGRESQL VÀ POSTGIS 123
4. PHỤ LỤC 4: PUBLISH DATA VỚI GEOSERVER 127
5. PHỤ LỤC 5: BÀI TOÁN TÌM ĐƯỜNG VỚI POSTGIS + PGROUTING 132
DANH MỤC HÌNH VẼ
MỞ ĐẦU
Lý do chọn đề tài:
Nha Trang là một thành phố ven biển và là trung tâm kinh tế, chính trị, giáo dục,
văn hóa, khoa học kỹ thuật và du lịch của tỉnh Khánh Hòa, Việt Nam [1]. Theo số liệu
thống kê của Tổng cục Thống kê, tính đến năm 2018, thành phố này đã có đến 25 trường
Đại học, Cao đẳng và Cơ sở nghiên cứu khoa học [1]; thu hút hơn 15.980 sinh viên đến
từ khắp các tỉnh thành [2].
Và một trong những khó khăn lớn nhất của sinh viên khi xa nhà là việc đi thuê trọ.
Các bạn sinh viên thường phải vất vả tìm kiếm khắp nơi vì không xác định được một khu
vực cụ thể, mất nhiều thời gian, công sức mới có thể tìm được một nơi trọ phù hợp với túi
tiền, đáp ứng được nhu cầu. Tuy số lượng sinh viên ngày càng tăng, nhu cầu tìm kiếm nơi
trọ ngày càng cao, nhưng cách thức tìm nhà trọ vẫn chưa được cải tiến. Các bạn chỉ có
thể tiếp cận thông tin thông qua người quen giới thiệu, bảng tin rao vặt, mạng xã hội…,
vất vả tìm đường đến địa chỉ đã được cung cấp để xem tình trạng nơi ở.
Ngày nay, hệ thống thông tin địa lý (GIS) đã phát triển công nghệ cho phép chia sẻ
thông tin qua Internet bằng cách tích hợp GIS trên nền Web, tạo thành WebGIS, cho
phép cung cấp thông tin trên cơ sở tích hợp các thông tin không gian và thuộc tính của
đối tượng đã trở thành hướng đi mới mang lại hiệu quả cao trong nhiều lĩnh vực của đời
sống xã hội; cung cấp thông tin, hỗ trợ tìm kiếm nhà trọ cũng là một trong số những lĩnh
vực ấy. WebGIS với những ưu điểm nổi bật như hiển thị trực quan, dễ tiếp cận, thông tin
truyền tải giàu hình ảnh, cho cái nhìn hệ thống tổng thể và toàn diện có thể hỗ trợ việc
cung cấp thông tin phòng trọ được tiến hành nhanh hơn, kết quả tốt hơn, từ đó có thể dễ
dàng đưa ra quyết định một cách hiệu quả hơn.
Từ những lý do trên nên em đã quyết định thực hiện đề tài: “Xây dựng WebGIS
phục vụ tra cứu thông tin nhà trọ trực tuyến thành phố Nha Trang”.
Các mạng tuyến tính, đôi khi được gọi là mạng hình học, thường được đại diện bởi
đường, sông và lưới tiện ích công cộng trong GIS. Một dòng trên bản đồ có thể chỉ ra một
con đường hoặc đường cao tốc. Tuy nhiên, với các lớp GIS, con đường đó có thể chỉ ra
ranh giới của một thành phố, công viên công cộng hoặc khu vực dân cư.
Sử dụng thu thập dữ liệu đa dạng, mạng tuyến tính của một con sông có thể được
ánh xạ trên GIS để chỉ ra dòng chảy của các nhánh khác nhau.
Bản đồ thế giới có thể hiển thị kích thước chính xác của các quốc gia hoặc hình
dạng chính xác của chúng. GIS lấy dữ liệu từ các bản đồ được tạo bằng các hình chiếu
khác nhau và kết hợp chúng để tất cả thông tin có thể được hiển thị bằng một hình chiếu
chung.
Bản đồ GIS
Khi tất cả dữ liệu mong muốn đã được nhập vào hệ thống GIS, chúng có thể được
kết hợp để tạo ra nhiều bản đồ riêng lẻ, tùy thuộc vào lớp dữ liệu nào được bao gồm. Một
trong những cách sử dụng phổ biến nhất của công nghệ GIS liên quan đến việc so sánh
các tính năng tự nhiên với hoạt động của con người.
Ví dụ, bản đồ GIS có thể hiển thị những tính năng nhân tạo gần một số tính năng
tự nhiên nhất định, chẳng hạn như nhà cửa và doanh nghiệp nào ở những khu vực dễ bị
ngập lụt.
Công nghệ GIS cũng cho phép người dùng “đào sâu” trong một lĩnh vực cụ thể
với nhiều loại thông tin. Bản đồ của một thành phố hoặc khu phố duy nhất có thể liên
quan đến thông tin như thu nhập trung bình, doanh số bán sách hoặc mô hình bỏ phiếu.
Bất kỳ lớp dữ liệu GIS nào cũng có thể được thêm hoặc loại bỏ khỏi bản đồ.
Bản đồ GIS có thể được sử dụng để hiển thị thông tin về số lượng và mật độ. Ví
dụ, GIS có thể cho thấy có bao nhiêu bác sĩ trong một khu phố so với dân số của khu vực.
Với công nghệ GIS, các nhà nghiên cứu cũng có thể xem xét sự thay đổi theo thời
gian. Họ có thể sử dụng dữ liệu vệ tinh để nghiên cứu các chủ đề như sự tăng lên và giảm
xuống của lớp băng ở các vùng cực và phạm vi phủ sóng đó đã thay đổi như thế nào theo
thời gian. Một khu cảnh sát có thể nghiên cứu những thay đổi trong dữ liệu tội phạm để
giúp xác định nơi phân công sĩ quan.
Một cách sử dụng quan trọng của công nghệ GIS dựa trên thời gian liên quan đến
việc tạo ra chụp ảnh time-lapse cho thấy các quy trình xảy ra trong các khu vực rộng lớn
và thời gian dài. Ví dụ, dữ liệu cho thấy sự chuyển động của chất lỏng trong đại dương
hoặc dòng không khí giúp các nhà khoa học hiểu rõ hơn về độ ẩm và năng lượng nhiệt di
chuyển trên toàn cầu như thế nào.
Công nghệ GIS đôi khi cho phép người dùng truy cập thêm thông tin về các khu
vực cụ thể trên bản đồ. Một người có thể trỏ đến một vị trí trên bản đồ kỹ thuật số để tìm
thông tin khác được lưu trữ trong GIS về vị trí đó. Ví dụ: người dùng có thể nhấp vào
một trường học để tìm số lượng học sinh đã đăng ký, số lượng học sinh trên mỗi giáo
viên hoặc cơ sở thể thao mà trường có.
Các hệ thống GIS thường được sử dụng để tạo ra hình ảnh ba chiều. Điều này rất
hữu ích, ví dụ, cho các nhà địa chất nghiên cứu các đứt gãy động đất.
Công nghệ GIS giúp việc cập nhật bản đồ dễ dàng hơn nhiều so với việc cập nhật
bản đồ được tạo thủ công. Dữ liệu cập nhật chỉ đơn giản là có thể được thêm vào chương
trình GIS hiện có. Một bản đồ mới sau đó có thể được in hoặc hiển thị trên màn hình.
Điều này bỏ qua quá trình vẽ bản đồ truyền thống, có thể tốn thời gian và tốn kém.
Hình 1.1. Minh họa các lớp bản đồ GIS [3]
<progress>: Nó được sử dụng để đại diện cho tiến trình của một nhiệm vụ. Nó
cũng được xác định rằng bao nhiêu công việc được thực hiện và bao nhiêu còn lại để tải
về một thứ. Nó không được sử dụng để đại diện cho không gian đĩa hoặc truy vấn có liên
quan.
<svg>: Thẻ đồ họa vector có thể mở rộng.
<canvas>: <canvas> trong HTML được sử dụng để vẽ đồ họa trên trang web bằng
JavaScript. Nó có thể được sử dụng để vẽ đường dẫn, hộp, văn bản, gradient và thêm
hình ảnh. Theo mặc định, nó không chứa viền và văn bản.
<audio>: Nó xác định nội dung âm nhạc hoặc âm thanh.
<embed>: Xác định bộ chứa cho các ứng dụng bên ngoài (thường là trình phát
video).
<source>: Nó định nghĩa các nguồn cho <video> và <audio>.
<track>: Nó xác định các bản nhạc cho <video> và <audio>.
<video>: Nó xác định nội dung video.
Ưu điểm:
Hỗ trợ tất cả các trình duyệt hiện đại.
Thân thiện với nhiều thiết bị hơn.
Dễ dàng sử dụng và thực hiện.
HTML5 tích hợp với CSS, JavaScript, v.v. có thể giúp xây dựng các trang web
đẹp.
Hạn chế:
Các mã dài phải được viết, rất tốn thời gian.
Chỉ có các trình duyệt hiện đại mới hỗ trợ nó.
2. Mô hình DFD
Sơ đồ DFD tổng quát mức 0 – Quản lý WebGIS tra cứu thông tin nhà trọ
3. Mô hình dữ liệu
1. Dữ liệu không gian
Qua khảo sát thực tế và quá trình thu thập dữ liệu từ bản đồ Google Map,
OpenStreetMap thành phố Nha Trang để phù hợp việc quản lý. Các lớp dữ liệu không
gian cần xây dựng:
Bảng 3.1. Dữ liệu không gian
Kiểu dữ
ST Tên
liệu của Thuộc tính của Theme
T Theme
Theme
Các đỉnh
Mã đỉnh, Số đỉnh tham chiếu, Chỉ báo đỉnh, Số đỉnh tham
9 của mạng Point
chiếu đến, Số đỉnh tham chiếu đi.
lưới đường
ST
Tên thuộc tính Kiểu dữ liệu Mô tả
T
ST Tên thuộc
Kiểu dữ liệu Mô tả
T tính
ST Tên thuộc
Kiểu dữ liệu Mô tả
T tính
ST
Tên thuộc tính Kiểu dữ liệu Mô tả
T
ST Tên thuộc
Kiểu dữ liệu Mô tả
T tính
Tên thuộc
STT Kiểu dữ liệu Mô tả
tính
ST
Tên thuộc tính Kiểu dữ liệu Mô tả
T
ST Tên thuộc
Kiểu dữ liệu Mô tả
T tính
ST
Tên thuộc tính Kiểu dữ liệu Mô tả
T
ST Tên thuộc
Kiểu dữ liệu Mô tả
T tính
R3: Mỗi Tiện nghi trong bảng Nhà trọ phải có giá trị trong bảng Tiện nghi
∀ t ∈NhaTro : ∃t'∈TienNghi, t.MaTN=t'.MaTN
a. Bối cảnh: NhaTro (Nhà trọ), TienNghi (Tiện nghi)
b. Bảng tầm ảnh hưởng
R3 Thêm Xóa Sửa
Nhà trọ + - + (MaTN)
Tiện - + + (MaTN)
nghi
R4: Mỗi Loại nhà trọ trong bảng Nhà trọ phải có giá trị trong bảng Loại nhà trọ
∀ t ∈NhaTro : ∃t'∈LoaiNhaTro, t.MaLNT=t'.MaLNT
a. Bối cảnh: NhaTro (Nhà trọ), LoaiNhaTro (Loại nhà trọ)
b. Bảng tầm ảnh hưởng
R4 Thêm Xóa Sửa
Nhà trọ + - + (MaLNT)
Loại nhà trọ - + + (MaLNT)
R5: Mỗi Đường trong bảng Nhà trọ phải có giá trị trong bảng Đường
∀ t ∈NhaTro : ∃t'∈Duong, t.MaDuong=t'.MaDuong
a. Bối cảnh: NhaTro (Nhà trọ), Duong (Đường)
b. Bảng tầm ảnh hưởng
R5 Thêm Xóa Sửa
Nhà + - + (MaDuong)
trọ
Đường - + + (MaDuong)
R6: Mỗi Phường xã trong bảng Nhà trọ phải có giá trị trong bảng Phường xã
∀ t ∈NhaTro : ∃t'∈PhuongXa, t.MaPX=t'.MaPX
a. Bối cảnh: NhaTro (Nhà trọ), PhuongXa (Phường xã)
b. Bảng tầm ảnh hưởng
R6 Thêm Xóa Sửa
Nhà trọ + - + (MaPX)
Phường - + + (MaPX)
xã
R7: Mỗi Nhà trọ chỉ có Nhà vệ sinh là ‘Riêng’ hoặc ‘Chung’
∀ t ∈NhaTro (t.NhaVeSinh ∈{'Riêng','Chung'})
a. Bối cảnh: NhaTro (Nhà trọ)
b. Bảng tầm ảnh hưởng
R7 Thêm Xóa Sửa
Nhà + - + (NhaVeSinh)
trọ
R8: Mỗi Loại đường trong bảng Đường phải có giá trị trong bảng Loại đường
∀ t ∈Duong : ∃t'∈LoaiDuong, t.MaLD=t'.MaLD
a. Bối cảnh: Duong (Đường), LoaiDuong (Loại đường)
b. Bảng tầm ảnh hưởng
R8 Thêm Xóa Sửa
Đường + - + (MaLD)
Loại - + + (MaLD)
đường
R9: Mỗi Phường xã trong bảng Trường phải có giá trị trong bảng Phường xã
∀ t ∈Truong : ∃t'∈PhuongXa, t.MaPX=t'.MaPX
a. Bối cảnh: Truong (Trường), PhuongXa (Phường xã)
b. Bảng tầm ảnh hưởng
R9 Thêm Xóa Sửa
Trường + - + (MaPX)
Phường - + + (MaPX)
xã
R10: Mỗi Đường trong bảng Trường phải có giá trị trong bảng Đường
∀ t ∈Truong : ∃t'∈Duong, t.MaDuong=t'.MaDuong
a. Bối cảnh: Truong (Trường), Duong (Đường)
b. Bảng tầm ảnh hưởng
R10 Thêm Xóa Sửa
Trườn + - + (MaDuong)
g
Đường - + + (MaDuong)
R11: Mỗi Phường xã trong bảng Trạm bus phải có giá trị trong bảng Phường xã
∀ t ∈TramBus : ∃t'∈PhuongXa, t.MaPX=t'.MaPX
a. Bối cảnh: TramBus (Trạm bus), PhuongXa (Phường xã)
b. Bảng tầm ảnh hưởng
R11 Thêm Xóa Sửa
Trạm bus + - + (MaPX)
Phường - + + (MaPX)
xã
R12: Mỗi Đường trong bảng Trạm bus phải có giá trị trong bảng Đường
∀ t ∈TramBus : ∃t'∈Duong, t.MaDuong=t'.MaDuong
a. Bối cảnh: TramBus (Trạm bus), Duong (Đường)
b. Bảng tầm ảnh hưởng
R12 Thêm Xóa Sửa
Trạm bus + - + (MaDuong)
Đường - + + (MaDuong)
R13: Mỗi Phường xã trong bảng Tiện ích phải có giá trị trong bảng Phường xã
∀ t ∈TienIch : ∃t'∈PhuongXa, t.MaPX=t'.MaPX
a. Bối cảnh: TienIch (Tiện ích), PhuongXa (Phường xã)
b. Bảng tầm ảnh hưởng
R13 Thêm Xóa Sửa
Tiện ích + - + (MaPX)
Phường - + + (MaPX)
xã
R14: Mỗi Đường trong bảng Tiện ích phải có giá trị trong bảng Đường
∀ t ∈TienIch : ∃t'∈Duong, t.MaDuong=t'.MaDuong
a. Bối cảnh: TienIch (Tiện ích), Duong (Đường)
b. Bảng tầm ảnh hưởng
R14 Thêm Xóa Sửa
Tiện ích + - + (MaDuong)
Đường - + + (MaDuong)
R15: Mỗi Loại tiện ích trong bảng Tiện ích phải có giá trị trong bảng Loại tiện ích
∀ t ∈TienIch : ∃t'∈LoaiTienIch, t.MaLTI=t'.MaLTI
a. Bối cảnh: LoaiTienIch (Loại tiện ích), TienIch (Tiện ích)
b. Bảng tầm ảnh hưởng
R15 Thêm Xóa Sửa
Loại tiện - + + (MaLTI)
ích
Tiện ích + - + (MaLTI)
R16: Mỗi User (người dùng) chỉ có Giới tính là ‘Nam’ hoặc ‘Nữ’
∀ t ∈User (t.GTinh ∈{'Nam','Nữ'})
a. Bối cảnh: User (Người dùng)
b. Bảng tầm ảnh hưởng
R16 Thêm Xóa Sửa
Người + - + (GTinh)
dùng
R17: Mỗi User (người dùng) chỉ có Quyền tài khoản là ‘0’ hoặc ‘1’
∀ t ∈User (t.QuyenTK ∈0,1)
a. Bối cảnh: User (Người dùng)
b. Bảng tầm ảnh hưởng
R17 Thêm Xóa Sửa
Người + - + (QuyenTK)
dùng
R18: Mỗi User (người dùng) là chủ trọ chỉ được hiệu chỉnh thông tin Nhà trọ do
chủ trọ đó đăng ký
USTK ←User⋈MaLTK=MaLTKLoaiTK
∀ t ∈NhaTro (∃s∈USTK (t.ID=s.ID))
a. Bối cảnh: User (Người dùng), NhaTro (Nhà trọ), LoaiTK (Loại tài
khoản)
b. Bảng tầm ảnh hưởng
R18 Thêm Xó Sửa
a
Người dùng - + + (ID, MaLTK)
Nhà trọ + - + (ID)
Loại tài + (TenLTK) + + (MaLTK, TenLTK)
khoản
R21: Mỗi User (người dùng) là chủ trọ chỉ được hiệu chỉnh thông tin Hồ sơ do
chủ trọ đó đăng ký
USLTK ←User⋈MaLTK=MaLTKLoaiTK
∀ t ∈User (∃s∈USLTK (t.ID=s.ID))
a. Bối cảnh: User (Người dùng), LoaiTK (Loại tài khoản)
b. Bảng tầm ảnh hưởng
R21 Thêm Xóa Sửa
Người dùng + - + (ID)
Loại tài + + + (ID, TenLTK)
khoản (TenLTK)
3. Thiết kế xử lý
Bước 3: Dùng công cụ Geoprocessing → Clip tiến hành cắt dữ liệu đường thành
phố Nha Trang.
Hình 4.2. Cắt dữ liệu đường thành phố Nha Trang
Sau khi cắt thành công chúng ta thu thập được dữ liệu đường của TP. Nha Trang
Bước 5: Tiếp tục chọn các dòng thuộc tính trùng tên đường → Mở công cụ Editor
→ Chọn Merge → OK để hợp nhất các đoạn đường còn lại thành một đường duy nhất.
Sau khi hoàn thành mở công cụ Editor → Save Edits để lưu trữ các dữ liệu vừa hợp nhất.
Quá trình thu thập và xử lý dữ liệu còn lại được tiến hành như sau:
Bước 1: Tạo các bảng excel *.xlsx dữ liệu nhà trọ, trường học, trạm chờ xe buýt,
tiện ích (ATM, y tế, chợ, công viên, nhà sách, bưu điện, hành chính) với các cột thuộc
tính đã được phân tích thiết kế ở chương 3 và dữ liệu thu thập được thông qua khảo sát,
trên Google Map.
Bước 2: Sử dụng Google Map, nhập địa chỉ để thu thập tọa độ của các địa điểm.
Bước 3: Tại cửa sổ phần mềm ArcMap → Chọn File → Add Data → Add XY
Data → Chọn file Excel → OK.
Hình 4.6. Nhập dữ liệu tọa độ vào ArcMap
Bước 4: Nhấp chuột phải lớp dữ liệu vừa Add → Chọn Data → Export Data thành
lớp dữ liệu shapefile, định dạng *.shp. Dữ liệu này có hệ tọa độ WGS84 (Ellipsoid
WGS84 toàn cầu).
Hình 4.7. Các lớp dữ liệu đã xử lý được
Quá trình biên tập bản đồ được tiến hành như sau:
Sau khi có dữ liệu shapefile các lớp dữ liệu cần thiết đã được xử lý từ ArcMap, ta
tiến hành đưa các lớp dữ liệu vào phần mềm QGIS. Tại cửa sổ Layers Properties, chọn
công cụ Symbology. Tại đây, ta có thể lựa chọn kiểu thể hiện ký hiệu (single symbol,
categorized, graduated,…).
Hình 4.8. Biên tập lớp dữ liệu nhà trọ
Xuất file SLD: Sau khi biên tập hoàn chỉnh, tại nút Style ở cửa sổ Layer Properties
của mỗi lớp, chọn Save Style để xuất ra file SLD để “lưu trữ” kiểu ký hiệu. File SLD sẽ
giúp lưu lại hình dạng, màu sắc của ký hiệu.
Hình 4.10. Xuất file SLD
Hình 5.3. Giao diện trang đăng ký dành cho chủ trọ
Giao diện trang đăng nhập
Hình 5.4. Giao diện trang đăng nhập dành cho chủ trọ và quản trị viên
Giao diện trang liên hệ
2. Giao diện của người dùng (chủ trọ)
Sau khi đăng nhập thành công với tài khoản đã được đăng ký trước đó, giao diện
của chủ trọ có thêm các chức năng như: đổi mật khẩu, xem hồ sơ, chỉnh sửa, xóa tài
khoản người dùng, hiệu chỉnh nhà trọ.
Kiểm tra đối với tên tài khoản không hợp lệ hoặc chưa được đăng ký.
Hình 5.12. Kiểm tra trường mật khẩu khi đăng nhập
Hình 5.13. Xác thực tài khoản khi đổi mật khẩu
Sau khi nhập đầy đủ thông tin tài khoản hợp lệ thì trang web sẽ phản hồi để người
dùng tiến hành đăng nhập lại với mật khẩu mới.
Hình 5.14. Đổi mật khẩu thành công
Sau khi đăng ký nhà trọ thành công thì nhà trọ sẽ được hiển thị trên bản đồ.
Hình 5.18. Hiển thị nhà trọ trên bản đồ sau khi đăng ký thành công
Hình 5.24. Xem chi tiết và hiệu chỉnh thông tin người dùng
Hiệu chỉnh thông tin của tất cả các nhà trọ do người dùng đăng ký
Hình 5.25. Hiệu chỉnh thông tin của tất cả các nhà trọ do người dùng đăng ký
Hình 5.26. Tìm những nhà trọ thuộc loại sinh viên (có 29 kết quả)
Ở đâu: Giúp bạn giới hạn khu vực tìm kiếm ở một phường/xã hoặc đoạn đường
nào đó trong thành phố.
Hình 5.27. Tìm những nhà trọ thuộc loại sinh viên ở phường Vĩnh Thọ (còn 7 kết quả)
Kết quả tìm kiếm nhà trọ gần Đại học Nha Trang với bán kính 250m được hiển thị
và đánh dấu trên bản đồ.
Hình 5.30. Kết quả tìm kiếm theo không gian
Kết quả tìm kiếm nhà trọ theo tọa độ được đánh dấu với bán kính 200m được hiển
thị và đánh dấu trên bản đồ.
Hình 5.32. Kết quả tìm kiếm xung quanh
Chức năng phát hiện vị trí hiện tại của người dùng
Chức năng tải xuống bản đồ với định dạng ảnh PNG
Hình 5.38. Tải xuống hình ảnh bản đồ PNG
Chức năng xuất hình ảnh bản đồ với định dạng PDF
Kết quả sau khi xuất bản đồ PDF với kích thước trang A4, độ phân giải 150dpi.
[1] Wikipedia tiếng Việt, “Nha Trang,” 24 06 2021. [Trực tuyến]. Available:
https://vi.wikipedia.org/wiki/Nha_Trang. [Đã truy câ ̣p 25 06 2021].
[2] “Tổng cục Thống kê,” 2018. [Trực tuyến]. Available: https://www.gso.gov.vn/px-
web-2/?pxid=V1018&theme=Gi%C3%A1o%20d%E1%BB%A5c. [Đã truy câ ̣p 10
04 2021].
[3] National Geographic, “GIS (Geographic Information System),” 2021. [Trực tuyến].
Available: https://www.nationalgeographic.org/encyclopedia/geographic-
information-system-gis/12th-grade/. [Đã truy câ ̣p 20 05 2021].
[10] Mắt Bão, “CSS3 là gì? Từ A đến Z các tính năng mới của CSS3 so với CSS,” 22 05
2020. [Trực tuyến]. Available: https://wiki.matbao.net/css3-la-gi-tu-a-den-z-cac-
tinh-nang-moi-cua-css3-so-voi-css. [Đã truy câ ̣p 21 05 2021].
[13] Minh Anh, “PHP là gì? PHP dùng để làm gì trong lập trình?,” 28 10 2020. [Trực
tuyến]. Available: https://news.timviec.com.vn/php-la-gi-71062.html. [Đã truy câ ̣p
23 05 2021].
[14] Đào Trúc Uyên, "Xây dựng WebGIS mã nguồn mở phục vụ tra cứu thông tin nhà
trọ trực tuyến khu vực Quận Tân Bình," Trường Đại học Tài nguyên và Môi trường
thành phố Hồ Chí Minh, 2018.
[15] Lê Văn Sony, "Ứng dụng công nghệ mã nguồn mở xây dựng WebGIS thông tin
hành chính thành phố Hồ Chí Minh," Trường Đại học Nông Lâm thành phố Hồ Chí
Minh, 2013.
[16] Đặng Xuân Tiến, "Ứng dụng GIS hỗ trợ xử lý biến động đất đai tại huyện Bắc Bình
– tỉnh Bình Thuận," Trường Đại học Nông Lâm thành phố Hồ Chí Minh, 2014.
PHỤ LỤC
1. PHỤ LỤC 1: HƯỚNG DẪN CÀI ĐẶT POSTGRESQL VÀ POSTGIS
Đầu tiên để cài đặt PostgreSQL ta truy cập vào link và tải phiên bản phù hợp:
(https://www.enterprisedb.com/downloads/postgres-postgresql-downloads)
Các bước tiến hành cài đặt PostgreSQL và PostGIS gồm:
Bước 1: Mở file cài đặt đã tải ở link trước đó
Bước 2: Chọn ổ đĩa, thư mục lưu chương trình
Bước 3: Tiếp theo bạn cần tạo mật khẩu là: admin, user mặc định là “postgres”
Bước 4: Điền cổng kết nối muốn cài đặt hoặc để mặc định là 5432
Bước 5: Chọn cụm Database
Bước 6: Tích chọn Stack Builder để cài đặt phần mở rộng của PostgreSQL
Bước 7: Chọn tích vào ô PostGIS 3.1
Bước 8: Tích chọn PostGIS và Create spatial database
Hộp thoại System Properties mở ra, chúng ta chọn vào Environment Variables..
như hình dưới
Trong System variables chọn New
Điền Variable name: JAVA_HOME, Variable value là đường dẫn đến thư mục cài
đặt jdk như hình dưới:
Sau đó chúng ta tìm biến Path trong System Variable và chọn Edit. Chúng ta thêm
đoạn sau đây vào cuối của Variable value: %JAVA_HOME%\bin. Click OK để kết thúc
cài đặt.
Sau khi cài xong JAVA chúng ta tiếp tục cài Tomcat. Tiếp tục bạn tạo một biến
môi trường cho Tomcat với tên biến: CATALINA_HOME, giá trị là đường dẫn đến
Tomcat như hình dưới:
Sau đó tiếp tục thêm Variable value: %CATALINA_HOME%\bin vào biến Path
như với Java ở trên.
Tiếp theo chúng ta mở XAMPP Control Panel, khởi động Tomcat, click Admin để
chạy Tomcat.
Sau khi Tomcat đã chạy, các bạn vào trình duyệt mặc định sẽ thấy như sau:
Nếu không Deploy thành công (true) thì Copy file geoserver.war vào thư mục
D:\XAMPP\tomcat\webapps và khởi động lại Tomcat.
Sau khi Deploy thành công thì ta sẽ thấy geoserver đã được liệt kê trong danh sách
các app như ở dưới:
GeoServer sau khi cài đặt phải sửa lại user admin password để đăng nhập được,
cách sửa lại như sau:
Vào thư mục cài đặt GeoServer, tìm đến
D:\XAMPP\tomcat\webapps\geoserver\data\security\usergroup\default\users.xml.
Sửa lại dòng code
<user enabled="true" name="admin"
password="digest1:D9miJH/hVgfxZJscMafEtbt...JOSV4POi55PQI4tw"/>
thành
<user enabled="true" name="admin" password="admin"/>
Tiếp theo truy cập vào http://localhost:8080/geoserver chúng ta sẽ thấy giao diện
của Geoserver. Username đăng nhập sẽ là admin, password là admin.
Cuối cùng, chúng ta kết nối cơ sở dữ liệu này với hệ thống WebGIS để tiến hành
lập trình, xây dựng các chức năng:
4. PHỤ LỤC 4: PUBLISH DATA VỚI GEOSERVER
Để Publish data với GeoServer chúng ta làm theo các bước sau:
Bước 1: Truy cập vào http://localhost:8080/geoserver chúng ta sẽ thấy giao diện
của GeoServer. Username đăng nhập sẽ là admin, password là admin.
Bước 2: Chọn Workspaces, chọn Add new workspace để tạo một vùng làm việc.
Bước 4: Chọn Workspace đã tạo, nhập tên database, nhập user là postgres và
passwd là admin.
Bước 5: Sau khi nhập thành công Database PostgreSQL, trang sẽ tự động load các
layer và đưa chúng ta sang trang New layer, chúng ta có thể chọn Publish để publish các
layer cần thiết lên GeoServer.
Bước 6: Sau khi nhấn Publish, chúng ta định nghĩa hệ tọa độ (ở đây mình dùng hệ
tọa độ WGS84, mã code
4326)
Bước 7: Trong phần Bounding Boxes, nhấn Compute form data và Compute from
native bounds để tính toán extent cho layer của chúng ta như hình dưới:
Bước 8: Click Save để lưu lại Layer của chúng ta. Sau khi lưu xong thì Layer sẽ
hiện trên danh sách Layer như hình dưới:
Bước 9: Làm lại các bước trên đối với các Layer còn lại.
Sau khi hoàn thành Publish các layer vào GeoServer, ta chọn Layer Preview, chọn
OpenLayers để xem trước các layer trên nền Web
Kết quả xem trước lớp dữ liệu xã phường trên GeoServer
2. Chúng ta thêm 2 trường vào bảng network tạo ở bước trước như sau:
alter table public.network add column source integer;
alter table public.network add column target integer;
4. Trong phần Attributes, ấn Refresh, trong Type bạn chọn LineString, SRID chọn hệ
tọa độ của data, ở đây là 4326 và Save để hoàn tất bước này.
5. Nhấn Compute from data và Compute from native bounds để tạo tạo độ khung cho
layer → Save để hoàn tất.
4. Kết quả chạy trên localhost: