Bối cảnh và vấn đề nghiên cứu
Tài liệu là bài tập nhóm cuối kỳ / báo cáo đồ án của nhóm sinh viên ngành Công nghệ thông tin thuộc Trường Đại học Nha Trang, thực hiện vào tháng 05 năm 2023 dưới sự hướng dẫn của giảng viên Huỳnh Tuấn Anh. Mặc dù trang bìa và phần mở đầu sơ lược có chứa thông tin tiêu đề về "Ứng dụng mua sắm linh kiện máy tính", toàn bộ nội dung học thuật, thiết kế kỹ thuật, cài đặt thực nghiệm và hệ thống phụ lục từ Chương 1 đến Chương 6 đều tập trung giải quyết bài toán xây dựng Hệ thống Thông tin Địa lý trên nền tảng Web (WebGIS) phục vụ tra cứu và tìm kiếm thông tin nhà trọ trực tuyến tại thành phố Nha Trang.
Lý do chọn đề tài và bối cảnh thực tiễn
- Nhu cầu tìm kiếm nhà trọ của sinh viên và người lao động khi đến học tập, làm việc tại thành phố Nha Trang là rất lớn và cấp thiết.
- Các website và công cụ tra cứu nhà trọ hiện thời chủ yếu cung cấp thông tin dưới dạng văn bản mô tả tĩnh, thiếu sự trực quan về mặt không gian địa lý, không hỗ trợ công cụ truy vấn khoảng cách, tiện ích xung quanh hoặc dẫn đường.
- Sự phát triển của các công nghệ Web và hệ thống GIS mã nguồn mở cho phép xây dựng giải pháp bản đồ số trực tuyến tiện lợi, tiết kiệm chi phí triển khai và dễ tiếp cận qua trình duyệt.
Mục tiêu nghiên cứu
- Nghiên cứu khung công nghệ GIS mã nguồn mở gồm GeoServer, PostgreSQL/PostGIS, OpenLayers và ngôn ngữ lập trình web (PHP, JavaScript, HTML5, CSS3).
- Khảo sát hiện trạng nhà trọ, nhu cầu của sinh viên và chủ nhà trọ trên địa bàn thành phố Nha Trang.
- Phân tích, thiết kế cơ sở dữ liệu không gian và thuộc tính quản lý mạng lưới nhà trọ, tiện ích, trường học, trạm xe buýt và hạ tầng giao thông.
- Xây dựng và cài đặt hoàn chỉnh hệ thống WebGIS với đầy đủ các chức năng phân quyền, quản trị, tìm kiếm theo thuộc tính, tìm kiếm theo không gian và phân tích lộ trình ngắn nhất.
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Công nghệ WebGIS mã nguồn mở, cơ sở dữ liệu không gian PostGIS, máy chủ bản đồ GeoServer, dữ liệu nhà trọ và hạ tầng đô thị.
- Phạm vi không gian: Địa bàn thành phố Nha Trang, tỉnh Khánh Hòa.
- Môi trường vận hành: Nền tảng cục bộ (localhost) thông qua gói dịch vụ XAMPP và Apache Tomcat.
Cơ sở lý thuyết và phương pháp
Báo cáo dựa trên các khái niệm, khung kiến trúc chuẩn và phương pháp luận phát triển phần mềm hệ thống thông tin địa lý:
Khung lý thuyết và công nghệ
- Hệ thống Thông tin Địa lý (GIS) & WebGIS: Cơ chế tích hợp dữ liệu không gian (Spatial Data) và dữ liệu thuộc tính (Attribute Data), phân tách thành các lớp bản đồ (layers) phục vụ hiển thị và xử lý trên nền web theo tiêu chuẩn của Tổ chức Không gian Địa lý (OGC).
- GeoServer: Máy chủ mã nguồn mở viết bằng Java, hỗ trợ biên tập, xử lý và chia sẻ dữ liệu bản đồ qua các giao thức web map tiêu chuẩn.
- PostgreSQL & PostGIS: Hệ quản trị cơ sở dữ liệu quan hệ đối tượng kết hợp phần mở rộng PostGIS (phiên bản PostGIS 3.1), cho phép lưu trữ, đánh chỉ mục không gian và thực thi các hàm truy vấn hình học, không gian (WKT, Shapefile).
- OpenLayers Framework: Thư viện JavaScript mã nguồn mở dựng giao diện bản đồ tương tác phía Client, hỗ trợ hiển thị layer WMS/WFS từ GeoServer, tích hợp công cụ vẽ, đo đạc và định vị.
- Công nghệ phát triển Web: PHP xử lý logic phía máy chủ kết nối cơ sở dữ liệu; HTML5, CSS3 và JavaScript thuần xây dựng giao diện người dùng.
- PgRouting: Module mở rộng cho PostgreSQL/PostGIS giải quyết bài toán định tuyến và tìm đường đi ngắn nhất trên mạng lưới giao thông.
Phương pháp nghiên cứu và tiền xử lý dữ liệu
- Phương pháp thu thập dữ liệu: Thu thập dữ liệu mạng lưới đường giao thông thành phố Nha Trang từ nền tảng bản đồ mở OpenStreetMap (OSM); điều tra, định vị tọa độ địa lý các điểm nhà trọ thực tế.
- Phương pháp tiền xử lý và biên tập bản đồ: Sử dụng phần mềm ArcMap để cắt lọc ranh giới hành chính, hợp nhất các đoạn đường, chuẩn hóa hệ tọa độ, biên tập kiểu hiển thị lớp dữ liệu nhà trọ và xuất cấu hình định dạng SLD (Styled Layer Descriptor).
- Phương pháp phân tích thiết kế: Áp dụng phương pháp phân tích có cấu trúc gồm sơ đồ phân rã chức năng (BFD), sơ đồ dòng dữ liệu (DFD mức 0 và mức 1), mô hình thực thể kết hợp (ERD) và mô hình dữ liệu vật lý (PDM).
Thiết kế và triển khai
Hệ thống được thiết kế theo kiến trúc phân tầng bao gồm tầng cơ sở dữ liệu không gian, tầng máy chủ dịch vụ bản đồ và tầng ứng dụng giao diện web.
1. Cấu trúc cơ sở dữ liệu hệ thống
Hệ thống thiết kế kết hợp dữ liệu không gian và dữ liệu thuộc tính thông qua 13 bảng dữ liệu chính:
| Tên bảng dữ liệu |
Loại dữ liệu |
Chức năng quản lý |
Dữ liệu không gian |
Không gian |
Lưu trữ các đối tượng hình học dạng điểm, đường, vùng |
Dữ liệu phường xã |
Không gian / Thuộc tính |
Ranh giới và thông tin hành chính các phường thuộc TP. Nha Trang |
Dữ liệu đường |
Không gian / Thuộc tính |
Mạng lưới các tuyến đường phục vụ hiển thị và định tuyến |
Dữ liệu loại đường |
Thuộc tính |
Danh mục phân loại đường giao thông |
Dữ liệu nhà trọ |
Không gian / Thuộc tính |
Vị trí tọa độ, giá thuê, diện tích, địa chỉ, trạng thái phòng |
Dữ liệu loại nhà trọ |
Thuộc tính |
Phân loại phòng trọ (sinh viên, hộ gia đình, chung cư mini...) |
Dữ liệu tiện nghi |
Thuộc tính |
Danh mục tiện nghi phòng (wifi, vệ sinh khép kín, máy lạnh...) |
Dữ liệu tiện ích |
Không gian / Thuộc tính |
Vị trí các tiện ích dân sinh (chợ, siêu thị, bệnh viện...) |
Dữ liệu loại tiện ích |
Thuộc tính |
Phân loại các nhóm tiện ích công cộng |
Dữ liệu trường học |
Không gian / Thuộc tính |
Vị trí các trường đại học, cao đẳng trên địa bàn |
Dữ liệu trạm xe buýt |
Không gian / Thuộc tính |
Vị trí các điểm dừng đỗ xe buýt |
Dữ liệu user |
Thuộc tính |
Thông tin tài khoản chủ trọ, quản trị viên, sinh viên |
Dữ liệu loại tài khoản |
Thuộc tính |
Định danh quyền hạn phân cấp trên hệ thống |
2. Kiến trúc chức năng và phân quyền
Hệ thống chia làm 3 nhóm đối tượng sử dụng chính:
- Khách vãng lai / Sinh viên: Xem bản đồ; tương tác phóng to/thu nhỏ; định vị vị trí hiện tại; truy vấn thông tin nhà trọ theo bán kính (buffer) quanh trường học hoặc tọa độ tùy chọn; tìm đường đi ngắn nhất; đo đạc chiều dài/diện tích; xuất bản đồ dạng tệp PNG hoặc PDF.
- Chủ nhà trọ: Đăng ký tài khoản, đăng nhập, đổi mật khẩu; cập nhật hồ sơ cá nhân; thêm mới vị trí nhà trọ trực tiếp trên bản đồ; chỉnh sửa, cập nhật hoặc xóa thông tin nhà trọ đã đăng tải.
- Quản trị viên (Admin): Quản lý toàn bộ danh sách người dùng; kích hoạt hoặc vô hiệu hóa tài khoản; thêm tài khoản Admin mới; quản lý, hiệu chỉnh hoặc xóa dữ liệu nhà trọ vi phạm quy định.
Nội dung chính theo từng chương
Chương 1: Tổng quan về vấn đề nghiên cứu
Chương 1 hệ thống hóa toàn bộ cơ sở lý luận về GIS, WebGIS và các thành phần trong ngăn xếp công nghệ mã nguồn mở (GeoServer, PostgreSQL, PostGIS, OpenLayers Framework). Đồng thời, tác giả giới thiệu các ngôn ngữ xây dựng giao diện và xử lý dịch vụ (HTML5, CSS3, JavaScript, PHP) và tổng quan các nghiên cứu WebGIS liên quan đã được triển khai trong nước và quốc tế.
Chương 2: Khảo sát hiện trạng
Tập trung làm rõ hiện trạng đô thị thành phố Nha Trang, đặc điểm mạng lưới nhà trọ và nhu cầu của sinh viên các trường đại học, cao đẳng trên địa bàn. Phân tích các nhược điểm trong phương thức đăng tin thủ công của chủ trọ và khó khăn khi tìm kiếm phòng của sinh viên, từ đó đưa ra đặc tả yêu cầu bài toán.
Chương 3: Phân tích thiết kế hệ thống
Trình bày chi tiết các mô hình phân tích và thiết kế:
- Mô hình chức năng (BFD): Phân rã các khối chức năng quản lý, tìm kiếm, biên tập bản đồ và phân quyền.
- Mô hình luồng dữ liệu (DFD): Sơ đồ DFD tổng quát mức 0 và các sơ đồ DFD mức 1 cho từng ô xử lý chức năng.
- Mô hình dữ liệu: Xây dựng mô hình thực thể kết hợp (ERD), mô hình dữ liệu vật lý (PDM), từ điển dữ liệu chi tiết và các ràng buộc toàn vẹn của hệ thống.
- Thiết kế giao diện và giải thuật: Phác thảo sơ đồ màn hình người dùng, chủ trọ, Admin; xây dựng sơ đồ giải thuật xử lý nghiệp vụ cho đăng ký, đăng nhập, đổi mật khẩu, thêm nhà trọ, tìm kiếm thuộc tính và tìm kiếm không gian.
Chương 4: Cài đặt chương trình
Mô tả quy trình thu thập dữ liệu đường từ OpenStreetMap, dùng ArcMap cắt theo ranh giới TP. Nha Trang và hợp nhất các đoạn đường. Tiến hành số hóa tọa độ các điểm nhà trọ, nhập vào ArcMap để biên tập hiển thị và kết xuất ra các tệp mô tả kiểu hiển thị SLD.
Chương 5: Hướng dẫn cài đặt và sử dụng chương trình
Trình bày kết quả cài đặt thực tế giao diện và các ca sử dụng (use cases) của hệ thống:
- Giao diện trang chủ WebGIS, trang tìm kiếm nâng cao, trang đăng ký/đăng nhập, trang quản trị.
- Kiểm thử các trường hợp đăng ký/đăng nhập (báo lỗi trường rỗng, sai mật khẩu, tài khoản chưa đăng ký).
- Kiểm thử các thao tác thêm mới, hiển thị, chỉnh sửa và xóa thông tin nhà trọ.
- Thực nghiệm các kịch bản tìm kiếm: lọc nhà trọ sinh viên; lọc theo địa bàn phường Vĩnh Thọ; tìm kiếm không gian xung quanh Trường Đại học Nha Trang với bán kính 250m; tìm kiếm theo điểm đánh dấu bán kính 200m; định vị vị trí người dùng; đo chiều dài/diện tích; tìm đường đi ngắn nhất và xuất bản đồ ra tệp PNG/PDF.
Chương 6: Kết luận và hướng phát triển
Đánh giá tổng kết các kết quả đạt được, phân tích các điểm mạnh và những mặt tồn tại cần khắc phục, đồng thời vạch ra lộ trình mở rộng tính năng cho hệ thống trong tương lai.
Hệ thống Phụ lục kỹ thuật
Báo cáo cung cấp 5 phụ lục hướng dẫn cài đặt và cấu hình chi tiết:
- Phụ lục 1: Hướng dẫn cài đặt PostgreSQL và phần mở rộng PostGIS 3.1.
- Phụ lục 2: Hướng dẫn cấu hình GeoServer triển khai trên nền Tomcat thông qua XAMPP.
- Phụ lục 3: Quy trình tạo cơ sở dữ liệu không gian và dùng công cụ PostGIS Shapefile Import/Export Manager để nạp dữ liệu Shapefile vào PostgreSQL.
- Phụ lục 4: Hướng dẫn tạo Workspace và Publish dữ liệu lớp bản đồ trên GeoServer.
- Phụ lục 5: Cài đặt và giải bài toán tìm đường với PostGIS kết hợp PgRouting.
Kết quả và đóng góp
Kết quả triển khai và số liệu thực nghiệm
Hệ thống WebGIS đã được cài đặt và vận hành ổn định trên môi trường máy chủ cục bộ (localhost XAMPP), đạt được các kết quả kiểm thử thực nghiệm cụ thể:
- Thực hiện truy vấn phân loại nhà trọ sinh viên: Trả về 29 kết quả.
- Thực hiện truy vấn kết hợp nhà trọ sinh viên tại địa bàn phường Vĩnh Thọ: Lọc chính xác còn 7 kết quả.
- Thực hiện truy vấn không gian xung quanh vị trí Trường Đại học Nha Trang với bán kính vùng đệm 250m: Hệ thống xác định và hiển thị đúng 3 kết quả.
- Thực hiện truy vấn tìm kiếm xung quanh tọa độ người dùng đánh dấu với bán kính 200m.
- Hoàn thiện các công cụ bản đồ: Xác định vị trí người dùng qua Geolocation, đo đạc khoảng cách và diện tích trực tiếp, tìm kiếm đường đi ngắn nhất giữa hai điểm bất kỳ, kết xuất bản đồ thành công ra định dạng ảnh PNG và tài liệu PDF.
Đóng góp của đề tài
- Cung cấp một giải pháp ứng dụng WebGIS mã nguồn mở hoàn chỉnh phục vụ bài toán quản lý và tìm kiếm nhà trọ tại thành phố Nha Trang.
- Khắc phục nhược điểm thiếu thông tin địa lý trực quan của các trang tin bất động sản, phòng trọ truyền thống.
- Đóng góp quy trình tài liệu hóa chi tiết từ khâu xử lý dữ liệu bản đồ bằng ArcMap, lưu trữ trên PostGIS, cấu hình GeoServer cho đến hiển thị qua OpenLayers và PHP.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế được ghi nhận
- Giao diện người dùng (UI/UX) còn đơn giản, chưa tối ưu hóa trải nghiệm tương tác trực quan trên nhiều loại thiết bị.
- Hệ thống mới chỉ vận hành thử nghiệm trên môi trường localhost, chưa được cấu hình triển khai lên máy chủ web / tên miền trực tuyến.
- Chức năng định tuyến tìm đường ngắn nhất qua PgRouting mới chỉ hiển thị đường nối giữa hai điểm, chưa cung cấp bản hướng dẫn lộ trình rẽ chi tiết (turn-by-turn navigation).
- Cơ sở dữ liệu nhà trọ ban đầu còn hạn chế về quy mô và độ chính xác thực tế so với toàn bộ địa bàn thành phố.
Hướng phát triển
- Hoàn thiện giao diện web và công cụ bản đồ, tối ưu hóa trải nghiệm người dùng và đưa ứng dụng lên máy chủ hosting chính thức.
- Nghiên cứu sâu module PgRouting để xây dựng đồ thị mạng lưới đường có hướng đầy đủ, hỗ trợ các quy tắc giao thông thực tế như đường một chiều, cấm quay đầu và xuất lộ trình dẫn đường chi tiết.
- Xây dựng thêm chức năng đánh giá, bình luận, chấm điểm phòng trọ nhằm tăng cường độ tin cậy cho sinh viên khi ra quyết định thuê.
- Bổ sung cơ sở dữ liệu đa phương tiện phong phú hơn cho từng nhà trọ, bao gồm album ảnh thực tế và ảnh toàn cảnh 360 độ (Panorama).
Giá trị tham khảo
Tài liệu là nguồn tham khảo hữu ích cho:
- Sinh viên ngành Công nghệ thông tin, Hệ thống thông tin và Địa tin học (GIS): Có thể sử dụng đồ án làm tài liệu mẫu cho việc phân tích thiết kế hệ thống thông tin không gian và triển khai ứng dụng WebGIS từ đầu.
- Người phát triển ứng dụng bản đồ mã nguồn mở: Học hỏi được quy trình xử lý luồng dữ liệu chuẩn từ ArcMap, nạp shapefile vào PostGIS, xuất bản dịch vụ WMS/WFS qua GeoServer và lập trình tương tác bản đồ với OpenLayers Framework kết hợp backend PHP.
- Nhóm nghiên cứu các đề tài quản lý đô thị, dịch vụ công cộng: Tham khảo mô hình phân quyền quản trị 3 cấp (người dùng, nhà cung cấp dịch vụ, quản trị viên) và các giải thuật truy vấn không gian kết hợp thuộc tính.
Câu hỏi thường gặp
1. Hệ thống WebGIS trong đồ án sử dụng kiến trúc công nghệ nào?
Hệ thống sử dụng ngăn xếp mã nguồn mở bao gồm: PostgreSQL cùng phần mở rộng PostGIS để lưu trữ dữ liệu không gian/thuộc tính; máy chủ bản đồ GeoServer chạy trên Apache Tomcat (gói XAMPP); thư viện OpenLayers phía Client để kết xuất bản đồ; ngôn ngữ PHP, JavaScript, HTML5 và CSS3 để xây dựng logic và giao diện web.
2. Dữ liệu mạng lưới đường giao thông thành phố Nha Trang được thu thập và xử lý bằng công cụ gì?
Dữ liệu đường giao thông được trích xuất từ nền tảng bản đồ mở OpenStreetMap (OSM), sau đó đưa vào phần mềm ArcMap để cắt lọc theo ranh giới hành chính thành phố Nha Trang, hợp nhất các đoạn đường và chuẩn hóa trước khi nhập vào PostGIS qua công cụ PostGIS Shapefile Import/Export Manager.
3. Hệ thống hỗ trợ những phương thức truy vấn và tìm kiếm nhà trọ nào?
Hệ thống hỗ trợ 3 phương thức truy vấn chính: (1) Truy vấn theo thuộc tính (loại nhà trọ, phường/xã, mức giá); (2) Truy vấn theo không gian (tìm kiếm theo bán kính quanh trường học, tìm kiếm quanh điểm tọa độ người dùng đánh dấu); (3) Truy vấn kết hợp đồng thời cả thuộc tính và không gian.
4. Kết quả thực nghiệm tìm kiếm theo bán kính xung quanh Trường Đại học Nha Trang cho ra bao nhiêu kết quả?
Trong kịch bản kiểm thử tìm kiếm không gian với bán kính vùng đệm 250 mét quanh vị trí Trường Đại học Nha Trang, hệ thống đã lọc và hiển thị chính xác 3 nhà trọ phù hợp trên bản đồ.
5. Những chức năng nào đã được xây dựng cho tài khoản Quản trị viên (Admin)?
Quản trị viên có quyền: quản lý danh sách toàn bộ người dùng; xem chi tiết và hiệu chỉnh thông tin cá nhân của người dùng; kích hoạt hoặc vô hiệu hóa tài khoản của chủ trọ; tạo thêm tài khoản Admin mới; quản lý, chỉnh sửa hoặc xóa bất kỳ thông tin nhà trọ nào trên hệ thống.
Kết luận
Báo cáo đồ án đã xây dựng thành công hệ thống WebGIS tra cứu nhà trọ tại thành phố Nha Trang trên nền tảng ngăn xếp công nghệ mã nguồn mở hoàn chỉnh gồm PostgreSQL/PostGIS, GeoServer và OpenLayers. Sản phẩm cung cấp đầy đủ các chức năng quản trị, phân quyền người dùng và công cụ tương tác bản đồ trực quan hỗ trợ tìm kiếm theo không gian và dẫn đường. Mặc dù còn hạn chế về mặt triển khai trực tuyến và tính năng chỉ đường chi tiết, đề tài là một tài liệu kỹ thuật có giá trị tham khảo thực tiễn cao cho sinh viên và người làm phần mềm hệ thống thông tin địa lý.