KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Một phần của tài liệu ĐỒ Á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 (Trang 129)

6.1 KẾT QUẢ ĐẠT ĐƯỢC

Sau thời gian nghiên cứu và thực hiện đề tài, đến nay đề tài đã thực hiện những công việc cụ thể sau:

Sản phẩm cụ thể của đề tài là hệ thống WebGIS phục vụ cho việc tìm kiếm thơng tin nhà trọ trực tuyến tại thành phố Nha Trang trên nền tảng mã nguồn mở, chạy trên XAMPP localhost.

Đây là hệ thống WebGIS với các chức năng:

- Hiển thị và thao tác cơ bản với bản đồ như hiển thị nhiều lớp, phóng to, thu nhỏ, dịch chuyển,…

- Xây dựng được chức năng quản trị và phân quyền người dùng gồm 3 đối tượng chính: người dùng thơng thường (sinh viên, khách vãng lai), chủ trọ và quản trị viên.

- Chủ trọ có thể thêm mới, xóa hay cập nhật nhà trọ cũng như thơng tin cá nhân của mình.

- Quản trị viên có thể xóa hay cập nhật thơng tin nhà trọ, hiệu chỉnh thơng tin, kích hoạt hoặc vơ hiệu hóa tài khoản của chủ trọ.

Người dùng có thể tìm kiếm nhà trọ với các chức năng hỗ trợ:

- Truy vấn, tìm kiếm nhà trọ theo thuộc tính, khơng gian và kết hợp cả hai, xuất hình ảnh bản đồ theo định dạng PNG hoặc PDF.

- Phát hiện vị trí hiện tại của người dùng. Hiển thị thơng tin đối tượng khi click chuột lên bản đồ. Các chức năng đo lường: Đo khoảng cách, tính diện tích trên bản đồ.

- Chức năng tìm đường đi ngắn nhất giữa hai điểm được chọn bất kì trên bản đồ.

6.2 ƯU ĐIỂM

- Hệ thống WebGIS hoạt động được trên mơi trường trình duyệt web giúp người dùng dễ dàng tiếp cận thông qua Internet.

- Thể hiện trực quan vị trí nhà trọ cũng như các tiện ích liên quan trên nền bản đồ số với các công cụ tương tác bản đồ khác nhaụ

- Cung cấp các công cụ truy vấn từ đơn giản đến phức tạp, truy vấn được cả thuộc tính, khơng gian và kết hợp cả hai…phù hợp với mọi đối tượng người dùng, giúp người dùng tiết kiệm cả về thời gian, tiền bạc lẫn công sức.

6.3 HẠN CHẾ

- Giao diện hệ thống chưa được tối ưu cho trải nghiệm người dùng. - Chưa đưa được hệ thống lên một hosting (máy chủ) cụ thể.

- Một số chức năng chưa hồn thiện, cụ thể như chức năng tìm đường đi ngắn nhất chưa đưa ra hướng dẫn chi tiết hướng đi cho người dùng.

- Cơ sở dữ liệu nhà trọ chưa được đầy đủ và chính xác.

6.4 HƯỚNG PHÁT TRIỂN

- Hồn thiện thêm những chức năng hệ thống hiện có, cải thiện về giao diện, trải nghiệm người dùng Web cũng như bản đồ. Đưa hệ thống lên hosting (máy chủ) cụ thể. - Tìm hiểu thêm về Pgrouting, xây dựng dữ liệu hồn chỉnh để có thể thực hiện phân tích mạng có hướng, có hỗ trợ chức năng cấm quẹo, hướng dẫn chi tiết đường đi, đường một chiều…Xây dựng thêm các chức năng nâng cao khác phục vụ việc phân tích khơng gian để tìm vị trí nhà trọ tối ưụ

- Xây dựng chức năng đánh giá nhà trọ để hỗ trợ tốt hơn việc đưa ra quyết định lựa chọn nhà trọ, giúp tiết kiệm thời gian, công sức cho người dùng.

- Xây dựng hoàn chỉnh cơ sở dữ liệu về nhà trọ, thêm hình ảnh, ảnh panorama,…

6.5 KẾT LUẬN

Ngày nay, cuộc cách mạng cơng nghiệp 4.0 và vai trị của Internet ngày càng được khẳng định và không thể thiếu trong quản lý và chia sẻ thông tin của một quốc gia hay địa phương. Cùng với sự phát triển mạnh mẽ của hệ thống mạng toàn cầu – Internet và nhu cầu chia sẻ, tra cứu thông tin trên Internet.

Nhà trọ là nhu cầu cần thiết và là nỗi lo đầu tiên của các bạn sinh viên khi bước vào năm học, nhu cầu của các bạn chủ yếu là tìm được một phịng trọ có vị trí thuận tiện cho việc học tập và đi lại cũng như phù hợp với túi tiền. Tuy nhiên chưa có một trang Web nào giúp các bạn dễ dàng hơn trong việc tìm kiếm nhà trọ. Hầu hết các trang Web tìm nhà trọ hiện nay đều cung cấp thơng tin thiếu trực quan, thuần dưới dạng mơ tả, thơng tin cung cấp cịn thiếu rất nhiều, khơng có cơng cụ tìm kiếm, truy vấn khơng gian hiệu quả. Do vậy xây dựng một trang WebGIS trong lĩnh vực này là cần thiết, không chỉ phục vụ cho các bạn sinh viên mà cịn giúp ích cho các đối tượng khác. Các sản phẩm WebGIS có thể phục vụ nhu cầu của một cộng đồng lớn, thuận

TÀI LIỆU THAM KHẢO Chương 1.

[1] Wikipedia tiếng Việt, “Nha Trang,” 24 06 2021. [Trực tuyến]. Available: https://vịwikipediạ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.gsọ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].

[4] Emmanuel Jolaiya, “SECTION 1: Quick Introduction To GIS And WebGIS,” 03 12 2020. [Trực tuyến]. Available: https://jeafreezỵhashnodẹdev/section-1-quick- introduction-to-gis-and-webgis-cki8iqqgh02a6hps15dgm5463. [Đã truy câ ̣p 11 05 2021]. [5] Wikipedia, “GeoServer,” 16 04 2021. [Trực tuyến]. Available:

https://en.wikipediạorg/wiki/GeoServer. [Đã truy câ ̣p 14 05 2021].

[6] Guru99, “What is PostgreSQL? Introduction, Advantages & Disadvantages,” [Trực tuyến]. Available: https://www.guru99.com/introduction-postgresql.html. [Đã truy câ ̣p 15 05 2021].

[7] Wikipedia, “PostGIS,” 23 04 2021. [Trực tuyến]. Available: https://en.wikipediạorg/wiki/PostGIS. [Đã truy câ ̣p 16 05 2021]. [8] Wikipedia, “OpenLayers,” 23 01 2021. [Trực tuyến]. Available:

https://en.wikipediạorg/wiki/OpenLayers. [Đã truy câ ̣p 17 05 2021].

[9] GeeksforGeeks, “HTML5 | Introduction,” 23 04 2019. [Trực tuyến]. Available: https://www.geeksforgeeks.org/html5-introduction/. [Đã 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://wikịmatbaọnet/css3-la-gi-tu-a-den-z- cac-tinh-nang-moi-cua-css3-so-voi-css. [Đã truy câ ̣p 21 05 2021].

https://www.geeksforgeeks.org/introduction-to-javascript/. [Đã truy câ ̣p 22 05 2021]. [12] GeeksforGeeks, “PHP | Introduction,” 23 03 2021. [Trực tuyến]. Available:

https://www.geeksforgeeks.org/php-introduction/. [Đã truy câ ̣p 23 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 ngun 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)

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 6: Tích chọn Stack Builder để cài đặt phần mở rộng của PostgreSQL

B ư c 7 :

Bước 8: Tích chọn PostGIS và Create spatial database

2. PHỤ LỤC 2: HƯỚNG DẪN CÀI ĐẶT GEOSERVER VỚI TOMCAT XAMPP

Đầu tiên để cài đặt XAMPP ta vào link sau và tải phiên bản phù hợp: (https://www.apachefriends.org/download.html)

Tiếp theo, vào link sau để tải và cài đặt phiên bản Java SE Development Kit: (https://www.oraclẹcom/java/technologies/javase/jdk11-archive-downloads.html)

Sau khi cài xong JDK chúng ta tiến hành thiết lập biến môi trường cho JAVẠ Bạn chuột phải vào My Computer , chọn Properties, chọn vào Advanced system

Hộp thoại System Properties mở ra, chúng ta chọn vào Environment Variables.. như hình dưới

Đ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:

Tiếp theo chúng ta tải GeoServer với link: (http://geoserver.org/release/stable/) Các bạn chọn vào Web Archive (war) để tải GeoServer về. Sau khi tải xong, giải nén file tải được chúng ta sẽ có một file war để cài đặt.

Vào Tomcat http://localhost:8080 chọn vào Manager App. User các bạn có thể tìm thấy trong conf/tomcat-users.xml. Nếu khơng vào được và báo lỗi các bạn có thể phải thêm manager-gui role cho user như sau:

Bước 1: Vào thư mục conf trong D:\XAMPP\tomcat, mở file tomcat-users.xml Bước 2: Thêm role và user như sau:

<role rolename="manager-gui"/>

<user username="admin" password="admin" roles="manager- gui,manager-script,manager-jmx,manager-status"/>

Trong D:\XAMPP\tomcat\webapps\manager\WEB-INF\web.xml chúng ta sửa dòng sau để tăng giới hạn kích thước file geoserver:

<multipart-config> <!-- 50MB max --> <max-file-size>52428800</max-file-size> <max-request-size>52428800</max-request-size> <file-size-threshold>0</file-size-threshold> </multipart-config>

Đổi từ 52428800 (50MB) thành 125829120 (tương đương 120MB)

Sau khi vào Manager App trong phần WAR file to deploy, chúng ta chọn tệp với file war của GeoServer và nhấn Deploy

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.

3. PHỤ LỤC 3: TẠO DATABASE VỚI POSTGRESQL VÀ POSTGIS

Các bước để lưu dữ liệu không gian vào trong PostgreSQL bao gồm:

Bước 1: Mở pgAdmin4, nhập mật khẩu đã tạo trong lúc cài đặt Bước 2: Chuột phải vào Database, chọn Create, chọn Database…

Bước 4: Trong tab General bạn điền tên Database, Owner bạn chọn là postgres.

Bước 5: Mở công cụ PostGIS Shapefile Import/Export Manager lên. Công cụ

này được cài sẵn sau khi bạn cài PostGIS (bạn có thể tìm thấy trong Start → PostGIS..). Chọn vào View connection details… để nhập thơng tin đăng nhập vào PostGIS như hình dưới:

Bước 6: Chọn AđFile, tìm đến file shape đã xử lý trên ArcMap rồi click Open

để thêm file shape vào danh sách. Sau đó click Import để đưa shape file này vào CSDL như hình dưới:

Vậy là chúng ta đã đẩy xong file shape vào cơ sở dữ liệu, kiểm tra trong PostgreSQL sẽ thấy đã được tạo thêm các bảng mới như hình dưới:

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 Ađ new workspace để tạo một vùng làm

Bước 3: Tạo 1 Stores, chọn Stores, chọn Ađ new Store, chọn PostGIS.

Bước 4: Chọn Workspace đã tạo, nhập tên database, nhập user là postgres và

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

Bước 7: Trong phần Bounding Boxes, nhấn Compute form data và Compute

from native bounds để tính tố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 tạ Sau khi lưu xong thì Layer

sẽ hiện trên danh sách Layer như hình dưới:

Sau khi hồ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

5. PHỤ LỤC 5: BÀI TỐN TÌM ĐƯỜNG VỚI POSTGIS + PGROUTING 1. Kiểm tra chương trình

Với các phiên bản PostGIS bản mới nhất hiện nay thì pgRouting đã tích hợp sẵn vào bộ cài đặt:

- Vào pgAdmin, chọn SQL rồi gõ lệnh sau để kiểm tra xem bạn đã cài đặt thành công hay chưa và phiên bản pgRouting là bao nhiêu:

2. Xử lý dữ liệu:

Data của OpenStreetMap sẽ không thể sử dụng được luôn để đưa vào tạo route vì pgRouting địi hỏi mỗi đoạn giao cắt sẽ phải là một line riêng. Vì vậy chúng ta sẽ phải tiến hành phá khối các polyline thành các linẹ Để phá khối polyline chúng ta sử dụng công cụ Explore của QGIS như sau:

- Vào Processing → ToolBox để bật toolbox. Trong toolbox chúng ta gõ Explore vào ơ tìm kiếm để mở chức năng Explorẹ

Quay trở lại pgAdmin, để cho layer network của chúng ta có thể tìm đường được chúng ta phải tạo Topology cho nó theo các bước sau:

1. Mở pgAdmin và chọn vào database chứa bảng network và chọn Query Tool.

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 ađ column source integer; alter table public.network ađ column target integer;

3. Tạo topology cho network như sau:

select pgr_createTopology('public.network', 0.0001,

'geom', 'gid');

4. Sau khi chạy xong, pgRouting sẽ tạo cho chúng ta một bảng nữa có tên là

Để test chức năng chúng ta sẽ sử dụng QGIS như sau:

1. Mở QGIS, vào Database → DB Manager → DB Manager

2. Chắc chắn rằng bạn đã connect đến PostGIS, chọn vào database bạn đã connect đến, vào menu Database → SQL window gõ lệnh sau rồi ấn Executẹ

SELECT seq, node as id1, edge as id2, cost, geom FROM pgr_dijkstră

'SELECT gid as id, source, target, st_length(geom) as cost FROM public.network',

1, 5000, false ) di

JOIN public.network pt ON dịedge = pt.gid;

4. Kết quả:

3. Tạo layer Route trong Geoserver:

1. Tạo hàm pgr_fromAtoB với PostgreSQL:

CREATE OR REPLACE FUNCTION pgr_fromAtoB( IN tbl varchar,

IN x1 double precision, IN y1 double precision, IN x2 double precision, IN y2 double precision, OUT seq integer,

OUT gid integer, OUT name text,

OUT heading double precision, OUT cost double precision, OUT geom geometry)

RETURNS SETOF record AS $BODY$ DECLARE sql text; rec record; source integer; target integer; point integer;

EXECUTE 'SELECT id::integer FROM network_vertices_pgr ORDER BY the_geom <-> ST_GeometryFromText(''POINT(' || x1 || ' ' || y1 || ')'') LIMIT 1' INTO rec; source := rec.id;

EXECUTE 'SELECT id::integer FROM network_vertices_pgr ORDER BY the_geom <-> ST_GeometryFromText(''POINT(' || x2 || ' ' || y2 || ')'') LIMIT 1' INTO rec; target := rec.id;

-- Shortest path query (TODO: limit extent by BBOX) seq := 0;

sql := 'SELECT gid, geom, name, cost, source, target, ST_Reverse(geom) AS flip_geom FROM ' ||

'pgr_dijkstrắ'SELECT gid as id , source::int, target::int, '

|| 'st_length(geom) as cost FROM ' || quote_ident(tbl) || ''', ' || source || ', ' || target || ' , false), '

|| quote_ident(tbl) || ' WHERE edge = gid ORDER BY seq'; -- Remember start point

point := source;

FOR rec IN EXECUTE sql LOOP

-- Flip geometry (if required) IF ( point != rec.source ) THEN rec.geom := rec.flip_geom; point := rec.source;

ELSE

point := rec.target; END IF;

-- Calculate heading (simplified) EXECUTE 'SELECT degrees( ST_Azimuth(

ST_StartPoint(''' || rec.geom::text || '''), ST_EndPoint(''' || rec.geom::text || ''') ) )' INTO heading; -- Return record seq := seq + 1; gid := rec.gid; name := rec.name; cost := rec.cost; geom := rec.geom; RETURN NEXT; END LOOP; RETURN; END; $BODY$

LANGUAGE 'plpgsql' VOLATILE STRICT;

Hàm trên sẽ tìm trong bảng network_vertices_pgr để tìm các điểm gần nhất với điểm chúng ta nhập vào để làm target, source, rồi sử dụng 2 điểm đó đưa vào hàm

pgr_dijkstra để tìm routẹ

Các bước tạo layer Route trong Geoserver:

Một phần của tài liệu ĐỒ Á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 (Trang 129)

Tải bản đầy đủ (PDF)

(166 trang)