STT 1 2 Bảng 3.7. Dữ liệu nhà trọ STT 1 2 3 4 5 6
7 8 9 10 11 12 13 14 15 16 17 18 Bảng 3.8. Dữ liệu loại nhà trọ STT 1 2 Bảng 3.9. Dữ liệu trường học STT 1 2 3 4 5
6 7 8
Bảng 3.10. Dữ liệu loại tiện ích
STT 1 2 Bảng 3.11. Dữ liệu tiện ích STT 1 2 3 4 5 6 7 8 lviii
Bảng 3.12. Dữ liệu loại đườngSTT STT 1 2 Bảng 3.13. Dữ liệu trạm xe buýt STT 1 2 3 4 5 6 7 lix
3.2.1.4 Ràng buộc toàn vẹn
R1: Mỗi User (người dùng) trong bảng Nhà trọ phải có giá trị trong bảng User
∀ t ∈ NhaTro : ∃ t' ∈User ,t . ID=t' . ID
b. Bối cảnh: NhaTro (Nhà trọ), User (Người dùng)
c. Bảng tầm ảnh hưởng R1
Nhà trọ Người dùng
R2: Mỗi Loại tài khoản trong bảng User phải có giá trị trong bảng Loại tài
khoản
∀ t ∈User : ∃t' ∈ LoaiTK ,t . MaLTK=t' . MaLTK
b. Bối cảnh: User (Người dùng), LoaiTK (Loại tài khoản)
c. Bảng tầm ảnh hưởng R2
Người dùng Loại tài khoản
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
b. Bối cảnh: NhaTro (Nhà trọ), TienNghi (Tiện nghi)
c. Bảng tầm ảnh hưởng R3
Nhà trọ Tiện 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
b. Bối cảnh: NhaTro (Nhà trọ), LoaiNhaTro (Loại nhà trọ)
c. Bảng tầm ảnh hưởng R4
Nhà trọ Loại nhà trọ
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
b. Bối cảnh: NhaTro (Nhà trọ), Duong (Đường)
c. Bảng tầm ảnh hưởng R5
Nhà trọ Đường
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
b. Bối cảnh: NhaTro (Nhà trọ), PhuongXa (Phường xã)
c. Bảng tầm ảnh hưởng R6
Nhà trọ Phường xã
R7: Mỗi Nhà trọ chỉ có Nhà vệ sinh là ‘Riêng’ hoặc ‘Chung’
∀ t ∈ NhaTro (t . NhaVeSinh ∈{' Riên g' ,' Chun g' })
ạ Bối cảnh: NhaTro (Nhà trọ)
b. Bảng tầm ảnh hưởng R7
Nhà 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
b. Bối cảnh: Duong (Đường), LoaiDuong (Loại đường)
c. Bảng tầm ảnh hưởng R8
Đường Loại đườ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
b. Bối cảnh: Truong (Trường), PhuongXa (Phường xã)
c. Bảng tầm ảnh hưởng R9
Trường Phường xã
∀ t ∈Truong : ∃ t' ∈ Duong ,t . MaDuong=t' . MaDuong
b. Bối cảnh: Truong (Trường), Duong (Đường)
c. Bảng tầm ảnh hưởng R10
Trường Đường
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
b. Bối cảnh: TramBus (Trạm bus), PhuongXa (Phường xã)
c. Bảng tầm ảnh hưởng R11
Trạm bus Phường 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
b. Bối cảnh: TramBus (Trạm bus), Duong (Đường)
c. Bảng tầm ảnh hưởng R12
Trạm bus Đường
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
b. Bối cảnh: TienIch (Tiện ích), PhuongXa (Phường xã)
R13 Tiện ích Phường 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
b. Bối cảnh: TienIch (Tiện ích), Duong (Đường)
c. Bảng tầm ảnh hưởng R14
Tiện ích Đường
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
b. Bối cảnh: LoaiTienIch (Loại tiện ích), TienIch (Tiện ích)
c. Bảng tầm ảnh hưởng R15
Loại tiện ích Tiện ích
R16: Mỗi User (người dùng) chỉ có Giới tính là ‘Nam’ hoặc ‘Nữ’
∀ t ∈User ¿
ạ Bối cảnh: User (Người dùng)
b. Bảng tầm ảnh hưởng R16
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])
ạ Bối cảnh: User (Người dùng)
b. Bảng tầm ảnh hưởng R17
Người 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 = MaLTK LoaiTK ∀ t ∈ NhaTro ¿))
b. Bối cảnh: User (Người dùng), NhaTro (Nhà trọ), LoaiTK (Loại tài khoản)
c. Bảng tầm ảnh hưởng R18
Người dùng Nhà trọ
Loại tài khoản
R19: Loại tài khoản chỉ có thể là ‘User’ hoặc ‘Admin’
∀ t ∈ LoaiTK (t . TenLTK ∈ {' User' ,' Admin' })
ạ Bối cảnh: LoaiTK (Loại tài khoản)
b. Bảng tầm ảnh hưởng R19
Loại tài khoản
∀ t 1 ,t 2∈ LoaiTK (t 1 ≠ t 2∧ t 1. TenLTK ≠ t 2. TenLTK)
ạ Bối cảnh: LoaiTK (Loại tài khoản)
b. Bảng tầm ảnh hưởng R20
Loại tài 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 =MaLTK LoaiTK ∀ t ∈User ¿))
b. Bối cảnh: User (Người dùng), LoaiTK (Loại tài khoản)
c. Bảng tầm ảnh hưởng R21
Người dùng Loại tài khoản
3.2.2 Thiết kế giao diện
3.2.2.1 Sơ đồ màn hình
3.2.2.2 Mơ tả chi tiết một số màn hình tiêu biểuMàn hình chung của trang Web: Màn hình chung của trang Web:
Hình 3.11. Màn hình chung của trang Web
Màn hình của chủ trọ:
Màn hình của quản trị viên:
Hình 3.13. Màn hình của Admin
Màn hình đăng nhập:
Hình 3.14. Màn hình đăng nhập
Hình 3.15. Màn hình đăng ký
Hình 3.16. Màn hình chỉnh sửa hồ sơ
Màn hình đổi mật khẩu:
Hình 3.17. Màn hình đổi mật khẩu
3.2.3 Thiết kế xử lý
Đăng ký tài khoản Đăng nhập
Hình 3.19. Sơ đồ giải thuật đăng ký
Hình 3.20. Sơ đồ giải thuật đăng nhập
Hình 3.21. Sơ đồ giải thuật đổi mật khẩu
Thêm nhà trọ
Hình 3.22. Sơ đồ giải thuật thêm nhà trọ
Hình 3.23. Sơ đồ giải thuật tìm kiếm thuộc tính
Tìm kiếm khơng gian
Hình 3.24. Sơ đồ giải thuật tìm kiếm khơng gian
Chương 4. CÀI ĐẶT CHƯƠNG TRÌNH4.1 THU THẬP VÀ TIỀN XỬ LÝ DỮ LIỆU 4.1 THU THẬP VÀ TIỀN XỬ LÝ DỮ LIỆU
Phần mềm ArcMap: Cắt lấy dữ liệu đường của thành phố Nha Trang, thêm dữ liệu nhà trọ đã thu thập được thông qua khảo sát thực tế và bổ sung thêm đối tượng còn thiếu cho các lớp dữ liệu tiện ích (ATM, y tế, chợ,...)
Dữ liệu đường được tiến hành xử lý như sau:
Bước 1: Tải dữ liệu đường của Việt Nam với định dạng shapefile (.shp) theo
đường link và tiến hành giải nén: http://download.geofabrik.de/asiạhtml
Bước 2: Đưa dữ liệu shapefile đường vào ArcMap
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.26. 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
Hình 4.27. Dữ liệu đường sau khi cắt
Bước 4: Mở công cụ Editor → Start Editing → Nhấp chuột phải vào lớp đường
vừa xử lý được → Chọn Open Attribute Table để mở bảng thuộc tính → 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 thành một đường duy nhất.
Hình 4.28. Hợp nhất các đoạn đường
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 hồ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,
đã đượ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.
Hình 4.29. Dữ liệu tọa độ nhà trọ
Bước 3: Tại cửa sổ phần mềm ArcMap → Chọn File → Ađ Data → Ađ XY
Data → Chọn file Excel → OK.
Bước 4: Nhấp chuột phải lớp dữ liệu vừa Ađ → 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 tồn cầu).
Hình 4.31. Các lớp dữ liệu đã xử lý được
4.2 BIÊN TẬP BẢN ĐỒ
Phần mềm mã nguồn mở QGIS: Biên tập bản đồ, thiết kế kiểu ký hiệu (đường nét, màu sắc, hình dạng ký hiệu, độ đậm nhạt của màu sắc,...) cho các lớp dữ liệu đã thu thập được.
Sử dụng phần mềm QGIS để biên tập màu sắc, hình dáng, kiểu ký hiệu và lưu style dưới dạng file SLD. Vì ArcMap khơng hỗ trợ lưu file SLD nên sử dụng QGIS để biên tập. QGIS, tên đầy đủ là Quantum GIS, là một phần mềm hệ thống thông tin địa lý mã nguồn mở và miễn phí. QGIS có thể đọc được nhiều dạng dữ liệu như các bản đồ từ ArcView, MapInfo, các bảng thông tin tạo bởi PostgreSQL (thông qua PostGIS). Cũng như ArcMap, QGIS cũng cung cấp các cơng cụ số hóa, biên tập bản đồ.
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ụ Symbologỵ 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.32. Biên tập lớp dữ liệu nhà trọ
Kết quả sau khi biên tập các lớp dữ liệu:
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ệụ File SLD sẽ giúp lưu lại hình dạng, màu sắc của ký hiệụ
Hình 4.34. Xuất file SLD
Kết quả xuất file SLD:
4.3 XÂY DỰNG HỆ THỐNG WEBGIS
Công cụ sử dụng
- XAMPP: Giả lập môi trường server hosting, tạo và điều hành máy chủ nội bộ (localhost)
- Hệ quản trị cơ sở dữ liệu PostgreSQL: Quản trị cơ sở dữ liệu không gian và thuộc
tính.
- Phần mềm hỗ trợ mã nguồn mở PostGIS: Import các lớp dữ liệu không gian đã được xử lý trên ArcMap vào PostgreSQL, hỗ trợ lưu trữ dữ liệu dạng Geodatabase và truy vấn không gian trên cơ sở dữ liệụ
- Máy chủ mã nguồn mở GeoServer: Máy chủ mã nguồn mở để chia sẻ dữ liệu không gian địa lý. Được thiết kế cho khả năng tương tác, nó xuất bản dữ liệu từ bất kỳ nguồn dữ liệu không gian lớn nào bằng cách sử dụng các tiêu chuẩn mở.
- Thư viện JavaScript mã nguồn mở OpenLayer: Cung cấp API Javascript GIS để xây dựng ứng dụng Web về địa lý.
- Ngơn ngữ lập trình: PHP, HTML (ngơn ngữ đánh dấu siêu văn bản), CSS, JavaScript: Kết nối cơ sở dữ liệu, xây dựng giao diện cùng các chức năng của WebGIS.
Xem chi tiết cách cài đặt các cơng cụ và xây dựng chương trình tại phần phụ lục.
Link GitHub chứa các tệp cần thiết để cài đặt và file source code hệ thống WebGIS tra cứu nhà trọ: https://github.com/quangloc47
Chương 5. HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG CHƯƠNG TRÌNH5.1 HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG 5.1 HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG
Hướng dẫn chi tiết cách cài đặt và sử dụng chương trình được tải lên Youtube ở link sau đây: https://youtụbe/n_1g5KZQRn4
5.2 KẾT QUẢ THỰC HIỆN ĐỀ TÀI5.2.1 Xây dựng giao diện 5.2.1 Xây dựng giao diện
5.2.1.1 Giao diện chung của trang Web (sinh viên, khách vãng lai)
Giao diện trang chủ
Sau khi cài đặt XAMPP và GeoServer trên localhost, người dùng có thể vào trang WebGIS bằng cách truy cập vào đường link:
http://localhost:3128/WebGisNT_DauQuangLoc_59131309/index.php.
Giao diện trang tìm kiếm nâng cao
Giao diện trang đăng ký
Giao diện trang đăng nhập
Giao diện trang liên hệ
5.2.1.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ọ.
5.2.1.3 Giao diện của quản trị viên
Đối với quản trị viên sau khi đăng nhập sẽ có các chức năng bao gồm: đăng ký thành viên/quản trị viên mới, đổi mật khẩu cho tất cả các thành viên, xem thông tin chi tiết, hiệu chỉnh tất cả các thành viên, hiệu chỉnh nhà trọ.
5.2.2 Xây dựng chức năng
5.2.2.1 Đối với chủ trọ
Chức năng đăng ký tài khoản
Người dùng khi đăng ký tài khoản sẽ được kiểm tra trùng tên tài khoản với tài khoản đã có trong cơ sở dữ liệu, kiểm tra trường nhập vào rỗng, kiểm tra mật khẩu nhập lại có khớp với mật khẩu thứ nhất hay khơng.
Sau khi người dùng nhập đầy đủ thơng tin hợp lệ thì trang web sẽ phản hồi việc đăng ký tài khoản thành cơng.
Chức năng đăng nhập
Kiểm tra đối với trường nhập vào rỗng khi đăng nhập.
Hình 5.45. Kiểm tra trường rỗng khi đăng nhập
Kiểm tra đối với tên tài khoản không hợp lệ hoặc chưa được đăng ký.
Kiểm tra độ chính xác trường mật khẩu khi đăng nhập.
Hình 5.47. Kiểm tra trường mật khẩu khi đăng nhập
Chức năng đổi mật khẩu
Kiểm tra lại thơng tin tài khoản có chính xác hay khơng trước khi thực hiện đổi mật khẩụ
Hình 5.48. 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ớị
Hình 5.49. Đổi mật khẩu thành cơng
Chức năng chỉnh sửa hồ sơ cá nhân
Người dùng có thể thay đổi thơng tin hồ sơ cá nhân bao gồm: họ và tên, số điện thoại, hình ảnh, giới tính và địa chỉ.
Ví dụ: Thay đổi ảnh đại diện cá nhân.
Hình 5.50. Thay đổi thơng tin hồ sơ cá nhân
Trước khi xóa tài khoản thì trang web sẽ xác nhận lại với người dùng có thực sự muốn xóa tài khoản này hay khơng. Nếu khơng thì người dùng sẽ tiếp tục sử dụng và ngược lại thì tài khoản sẽ được xóạ
Chức năng thêm mới nhà trọ
Sau khi người dùng nhập đầy đủ thơng tin như hình dưới thì trang web sẽ phản hồi về việc đăng ký nhà trọ 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.53. Hiển thị nhà trọ trên bản đồ sau khi đăng ký thành cơng
Chức năng xóa nhà trọ
Trước khi xóa nhà trọ thì trang web sẽ xác nhận lại với người dùng có thực sự muốn xóa nhà trọ này hay khơng. Nếu khơng thì nhà trọ sẽ khơng bị xóa và ngược lại thì nhà trọ sẽ được xóạ
Chức năng chỉnh sửa thông tin nhà trọ
5.2.2.2 Đối với quản trị viên
Quản lý thông tin của tất cả người dùng
Hình 5.56. Thơng tin chi tiết các thành viên
Hình 5.57. Đăng ký thêm tài khoản Admin
hóa tài khoản
Ví dụ: Vơ hiệu hóa một tài khoản người dùng bất kỳ
Hình 5.58. Vơ hiệu hóa tài khoản
Xem chi tiết, hiệu
tin người dùng civ