Xây dựng hệ thống WebGIS

Một phần của tài liệu XÂY DỰNG HỆ TÌM KIẾM TRI THỨC THÔNG TIN ĐỊA LÝ CÁC ĐỀ TÀI KHOA HỌC VỀ GIS (Trang 38)

CHƯƠNG 2 TỔNG QUAN TÀI LIỆU

3.4. Xây dựng hệ thống WebGIS

Sau khi xây dựng xong CSDL, tiến hành đưa CSDL lên Geoserver và quá trình thực hiện như sau:

Quy trình thực hiện được mơ tả cụ thể ở Phụ lục 3.

3.4.1. Thiết kế hệ thống

Hệ thống WebGIS của đề tài xác định có 3 nhóm người trong hệ thống: người quản trị (Admin), người dùng không đăng nhập (chỉ xem và tìm kiếm thơng tin) và người dùng đăng nhập (được phép đăng tải bài).

 Người quản trị (Admin) là người được truy cập toàn bộ hệ thống thông qua chức năng đăng nhập, quản lý thông tin và quản lý đối tượng người dùng.

 Khách (người dùng không đăng nhập) là những người truy cập vào hệ thống mà khơng cần đăng nhập, có thể xem bản đồ và tìm kiếm thơng tin.

 Người dùng đăng nhập có thể là tác giả hoặc người có thơng tin về bài báo thơng qua chức năng đăng nhập, có thể xem bản đồ, tìm kiếm thơng tin và đăng thơng tin, chỉnh sửa, xóa thơng tin về bài báo.

30

Hình 3.8 Sơ đồ chức năng hệ thống WebGIS 3.4.2. Thiết kế giao diện trang web 3.4.2. Thiết kế giao diện trang web

Sitemap (sơ đồ của một trang web) là tập tin văn bản có chứa tất cả các đường dẫn của một trang web, hướng dẫn cho các cơng cụ tìm kiếm thu thập thơng tin của trang web một cách hiệu quả và cập nhật những thay đổi trên trang web, như là thêm một trang mới hoặc thay đổi trang web hiện tại.

Sitemap của trang web dự kiến của đề tài có 2 phần: Phần trang web hiển thị tìm kiếm

31

Hình 3.9 Mơ tả Sitemap của trang web

Ngơn ngữ mơ hình hóa thống nhất (Unified Modeling Language UML) là một ngôn ngữ mơ hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thơng tin một cách nhanh chóng.

Đối với người dùng khơng đăng nhập, họ có thể tìm kiếm, xem bản đồ. Đối với người dùng đăng nhập, ngoài việc xem bản đồ, tìm kiếm thì cịn có thể đăng các bài báo. Khi người dùng tìm kiếm, sẽ truy cập đến CSDL để cho ra kết quả các thơng tin thuộc tính và thơng tin khơng gian hiển thị lên bản đồ về vị trí của bài báo.

32

Hình 3.10 Mơ tả mơ hình UML

Hiện nay, việc tạo ra một website để đáp ứng nhu cầu của người sử dụng rất phổ biến với sự hỗ trợ của các ngơn ngữ lập trình web như HTML, CSS, JavaScript. HTML (HyperText Markup Language, hay là "Ngôn ngữ Đánh dấu Siêu văn bản") là một ngôn ngữ đánh dấu được thiết kế ra để tạo nên các trang web với các mẩu thơng tin được trình bày trên World Wide Web. Cùng với CSS và JavaScript, HTML tạo ra bộ ba nền tảng kỹ thuật cho World Wide Web. CSS ( Cascading Style Sheets), là một ngơn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngơn ngữ đánh dấu. HTML đóng vai trò định dạng các phần tử trên website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng,… CSS sẽ giúp đổi màu sắc trang, đổi màu chữ, thay đổi cấu trúc để tạo website đẹp mắt. Javascript là một ngơn ngữ lập trình được tạo ra để nâng cao khả năng tương tác của trang web với người sử dụng. Thông thường mã javascript (gọi tắt là js) được nhúng vào trong trang web và được thực thi bởi trình duyệt.

33

Dựa trên các phân tích, giao diện của trang web được thiết kế như sau:

Giao diện trang tìm kiếm: gồm các tiêu chí để tìm kiếm như tỉnh/thành phố, bài báo, phương pháp, phần mềm và các tiện ích cơng cụ; kết quả tìm kiếm được và bản đồ hiển thị thơng tin khơng gian của bài báo.

Hình 3.11 Mơ tả giao diện trang

Giao diện trang đăng nhập: gồm thông tin tên đăng nhập và mật khẩu mà người dùng đã đăng ký.

34

Hình 3.13 Mơ tả giao diện trang tìm kiếm 3.5. Thiết kế chức năng của trang web 3.5. Thiết kế chức năng của trang web

Hiển thị bản đồ

Để hiển thị bản đồ, ta cần thêm thư viện javascript Leaflet cho trang web, có thể lấy thư viện này tại địa chỉ: http://leafletjs.com/download.html.

35

Trong thẻ <body> ta khai báo vùng chứa bản đồ.

Để tạo bản đồ cho trang web, ta sử dụng lệnh L.map trong Leaflet.

Trong đó, map là giá trị id của thẻ <div> đã được khai báo. setView hiển thị bản đồ ở vĩ độ 8.48817348480225 và kinh độ 102.078514099121, với mức zoom là 5. Để khai báo các layer cho bản đồ ta thực hiện như sau:

Trong đó, đường dẫn http://localhost:8080/geoserver/gisparpers/wms để liên kết đến Geoserver. gis_papers là tên Workspace đã được tạo trên Geoserver như phụ lục 3 đã trình bày. Tên của layer là ‘gis_papers’.

36

Tương tác với bản đồ: tham chiếu đến vị trí không gian trên bản đồ của đối tượng được chọn.

Xây dựng chức năng tìm kiếm: Quá trình xây dựng chức năng tìm kiếm được trình bày ở Phụ lục 4 bằng ngơn ngữ lập trình Python.

37

CHƯƠNG 4. KẾT QUẢ NGHIÊN CỨU

Sau quá trình nghiên cứu và thực hiện đã xây dựng được một WebGIS hỗ trợ tìm kiếm thơng tin bài báo. Chương này sẽ trình bày các kết quả đạt được tương ứng với các chức năng.

4.1. Giao diện trang web

Phần giới thiệu là thời gian và địa điểm tổ chức các hội thảo.

Hình 4.1 Giao diện Timeline 4.1.1. Giao diện tìm kiếm 4.1.1. Giao diện tìm kiếm

Giao diện tìm kiếm gồm 2 phần:

 Bên trái màn hình là cơng cụ hỗ trợ tìm kiếm theo các tiêu chí và hiển thị kết quả.

 Bên phải màn hình là bản đồ hỗ trợ việc hiển thị vị trí của đối tượng bài báo.

38

Hình 4.2 Giao diện trang tìm kiếm 4.1.2. Giao diện đăng nhập 4.1.2. Giao diện đăng nhập

39

4.1.3. Giao diện đăng kí

Hình 4.4 Giao diện đăng ký 4.2. Kết quả của các chức năng tìm kiếm 4.2. Kết quả của các chức năng tìm kiếm

Với sự hỗ trợ của các chức năng, người dùng có thể tìm kiếm thơng tin bài báo theo các tiêu chí đã được đề ra.

Tìm kiếm theo 1 tiêu chí.

4.2.1.Tìm kiếm theo tinh thành phố

Người dùng nhấp vào ô “Tỉnh – Thành phố” và chọn chủ đề muốn tìm kiếm ví dụ như “Bình Định”, sau đó nhấp vào ơ “Tìm kiếm”.

40

Hình 4.5 Tìm kiếm theo Tỉnh thành phố

Kết quả tìm kiếm được sau: Bảng kết quả về bài báo: thông tin về tên bài báo, năm, tác giả, chủ đề.

41

4.2.2.Tìm kiếm theo chủ đề:

Người dùng nhấp vào ô “Chủ đề” và chọn cơng cụ muốn tìm kiếm, sau đó nhấp vào ơ “Tìm kiếm”.

Hình 4.7 Tìm kiếm theo chủ đề

Kết quả tìm kiếm: Bảng kết quả về bài báo: thơng tin về tên bài báo, năm, tác giả, năm, tỉnh/ thành phố.

42

4.2.3. Tìm kiếm theo phần mềm:

Người dùng nhấp vào ô “Phần mền” và chọn cơng cụ muốn tìm kiếm, sau đó nhấp vào ơ “Tìm kiếm”.

Hình 4.9 Tìm kiếm theo phần mềm

Kết quả tìm kiếm: Bảng kết quả về bài báo: thơng tin về tên bài báo, năm, tác giả, chủ đề, tỉnh/ thành phố.

43

4.2.4. Kết luận

Sau quá trình thực hiện đề tài, sản phẩm cuối cùng là trang web có chức năng tìm kiếm để hỗ trợ cho người dùng tìm kiếm các bài báo nghiên cứu về GIS theo các tiêu chí như về vị trí là khu vực (tỉnh, huyện), năm, chủ đề, phần mềm, công cụ, kỹ thuật, thông số. Người dùng có thể tìm kiếm theo 1 tiêu chí hoặc nhiều tiêu chí. Sau khi tìm kiếm kết quả hiện ra là thông tin về các bài báo và vị trí nghiên cứu trên bản đồ. Tuy nhiên, trang web còn nhiều hạn chế về chức năng, giao diện chưa được đẹp khoa học và mức độ tối ưu chưa được tốt.

44

CHƯƠNG 5. KẾT LUẬN VÀ KIẾN NGHỊ 5.1. Kết quả 5.1. Kết quả

Sau khi nghiên cứu và thực hiện, đề tài đã đạt được những kết quả cụ thể sau đây: Về phía bản thân:

 Củng cố lại các kiến thức đã được học và tìm hiểu.

 Hiểu biết hơn các kiến thức về công nghệ WebGIS, các ngơn ngữ lập trình web như JavaScript, HTML, CSS, Python.

 Nâng cao khả năng tìm kiếm tài liệu, thơng tin. Về phía đề tài:

 Xây dựng được hệ thống CSDL về bài báo.

 Xây dựng được giao diện cho trang WebGIS.

 Xây dựng thành công các chức năng cơ bản như: chức năng hiển thị bản đồ, tương tác với bản đồ, chức năng tìm kiếm thơng tin của bài báo theo mục đích cụ thể.

Tuy nhiên, đề tài vẫn còn một số mặt hạn chế như:

 Trình độ kiến thức về lập trình của cá nhân còn nhiều hạn chế nên xây dựng giao diện và chức năng của website còn sơ sài, thiếu sót nhiều về mặt nội dung và thiết kế chưa thật sự tối ưu nhất.

 Trang Web chỉ mới hoạt động trên máy ảo localhost, chưa có điều kiện để đưa lên Domain nên cịn có thể cịn các lỗi phát sinh về sau.

 Dữ liệu cịn khá ít, có nhiều hạn chế và thiếu sót trong quá trình phân loại và thiết kế dữ liệu.

Video demo sản phẩm: https://www.youtube.com/watch?v=K0g5EkAdFYw Link code: https://github.com/sasakido58/webgis

5.2. Kiến nghị

Để đề tài hoàn thiện và ứng dụng vào thực tế hỗ trợ việc tìm kiếm cho hội thảo GIS, cần nghiên cứu và phát triển thêm các nội dung sau:

45

 Nghiên cứu xây dựng hệ thống quản lý CSDL hoàn thiện hơn.

 Xây dựng thêm các chức năng hỗ trợ cho việc tìm kiếm hiệu quả .

 Xây dựng giao diện và các chức năng trang web chuyên nghiệp hơn: xây dựng chức năng đăng nhập bằng tài khoản mạng xã hội, xây dựng giao diện phù hợp với các thiết bị sử dụng.

 Thử nghiệm trang WebGIS vào thực tế để kiểm tra đánh giá tính hiệu quả, rà sóat và hồn thiện các lỗi.

46

PHỤ LỤC 1: QUY TRÌNH ĐƯA DỮ LIỆU VÀO POSTGRESQL POSTGRESQL

Phụ lục 1 sẽ trình bày các bước thực hiện tương ứng khi chuyển dữ liệu từ file Excel *.xlsx sang các bảng trong cơ sở dữ liệu PostgreSQL.

Sau khi phân chia dữ liệu theo các bảng đối tượng bằng phần mềm Microsoft Excel, ta tiến hành import dữ liệu vào PostgreSQL :

Dữ liệu mở bằng phần mềm Microsoft Excel, dùng lệnh INSERT INTO trong SQL vào bảng như hình 1.

Lần lượt thực hiện theo thứ tự 1, 2, 3:

1. Nhập câu lệnh vào Excel như hình

2. Sao chép đoạn kết quả từ câu lệnh trên vào Notepad và Replace " thành '.

Hình 1 Câu lệnh trong Excel

Mở phần mềm PostgreSQL và chọn database là gis_papers đã tạo bảng nhom_bai_bao sau đó đưa đoạn kết quả đã Replace vào trong bảng nhom_bai_bao và chạy, nhận thông báo Successfully là đã đưa dữ liệu vào thành công.

47

PHỤ LỤC 2: QUY TRÌNH XÂY DỰNG WEBMAP

Quy trình xây dựng kết nối những dữ liệu không gian lên trang Web (webmap) bằng Geoserver đã được nêu ở mục 4.1. chương 4 của báo cáo. Sau đây là các bước cụ thể:

Bước 1: Mở Geoserver bằng cách dùng trình duyệt web để truy cập vào Geoserver theo đường dẫn localhost:8080/geoserver. Đăng nhập vào hệ thống bằng tài khoản mặc định username: admin và password: geoserver .

Hình 3 Giao diện Geoserver

Bước 2: Tạo Workspace là vùng làm việc trên Geoserver. Lần lượt thực hiện theo thứ tự 1, 2, 3:

1. Chọn Workspace

2. Chọn Add new workspace 3. Tạo với tên là gis_papers.

48

Hình 4 Các bước tạo Workspace

Bước 3: Tạo Stores để chứa dữ liệu.

Lần lượt thực hiện các thao tác 1, 2, 3 1. Chọn Stores.

2. Chọn Add new Store.

3. Tạo Store với tên là Vietnam, loại nguồn dữ liệu là PostGIS.

49

Sau khi chọn PostGIS, chọn Workspace mà ta đã tạo, điền tên Database, chọn Save và Geoserver sẽ hiển thị các Layer của Database. Sau đó chọn Publish với Layer cần thiết.

Sau khi chọn Publish, ta cần điền các thông số về hệ tọa độ cần thiết cho Layer.

Vì dữ liệu của đề tài thuộc hệ tọa độ WGS 84 nên ô Native SRS và ô Declared SRS chọn EPSG:4326 như hình 16. Sau đó cập nhập phần Bounding Boxes bằng cách nhấp chọn Compute from data và Compute from native bounds để tính tốn khung bản đồ. Nhấp chọn Save, Layer đã được tạo.

Hình 6 Điền các thơng số

Bước 4: Tạo Style

Để hiển thị bản đồ đẹp mắt, ta phải tạo Style cho các Layer theo các dạng dữ liệu. Đối với dữ liệu dạng điểm thì có kiểu Style Point, dạng vùng có kiểu Style Polygon, dạng đường có kiểu Style Line. Ta có thể sử dụng các kiểu Style đơn giản mà Geoserver đã hỗ trợ sẵn. Tuy nhiên, nếu muốn thiết kế Style để phù hợp với dữ liệu thì ta có thể tạo Style mới.

Thực hiện các thao tác theo thứ tự 1, 2, 3. 1. Chọn Styles

2. Tạo Style vơi tên tinh_thanh trong Workspace gis_papers

50

Hình 7 Thao tác tạo Style

51

52

PHỤ LỤC 3: KHAI THÁC CƠ SỞ DỮ LIỆU BẰNG PHẦN MỀM POSTGRESSQL

Phần này trình bày cách xây dựng cơ sở dữ liệu bằng phần mềm PostgreSQL và PostGIS. Phần mềm PostgreSQL hỗ trợ cho người dùng khai thác cơ sở dữ liệu, truy vấn thông tin theo ngôn ngữ SQL. Dưới đây trình bày một số ví dụ về truy vấn thơng tin đối với dữ liệu của đề tài sau khi đã có cơ sở dữ liệu.

1.Xuất ra tên kỹ thuật (công cụ) theo bài báo và chủ đề:

SELECT DISTINCT

tenkythuat AS "Công cụ", tenbai AS "Bài báo", nhom_bai_bao.tennhom AS " Chuyên đề" FROM

chi_tiet_ky_thuat, cong_cu, bai_bao, nhom_bai_bao

WHERE chi_tiet_ky_thuat.makythuat = cong_cu.makythuat AND chi_tiet_ky_thuat.mabaibao = bai_bao.mabaibao AND bai_bao.nhom = nhom_bai_bao.nhom

53

Hình 10 Kết quả truy vấn theo bài báo và chủ đề 2. Xuất ra bài báo có tên kỹ thuật (cơng cụ) là “ Maximum Likelihood” SELECT DISTINCT

tenkythuat AS "Công cụ", tenbai AS "Bài báo", nhom_bai_bao.tennhom AS " Chuyên đề" FROM

chi_tiet_ky_thuat, cong_cu, bai_bao, nhom_bai_bao

WHERE chi_tiet_ky_thuat.makythuat = cong_cu.makythuat AND chi_tiet_ky_thuat.mabaibao = bai_bao.mabaibao

AND bai_bao.nhom = nhom_bai_bao.nhom AND tenkythuat LIKE N'%Likelihood%' ORDER BY tenbai;

54

Hình 11 Kết quả truy vấn theo tên cơng cụ 3.Xuất ra bài báo có năm là 2015

SELECT DISTINCT

tenbai AS "Bài báo", nam AS "Năm" FROM bai_bao

WHERE nam IN (2015) ORDER BY tenbai;

55

Hình 12 Kết quả truy vấn theo năm 4.Xuất ra tên kỹ thuật (công cụ) tương ứng của bài báo theo tỉnh

SELECT DISTINCT

tenkythuat AS "Công cụ", tinh_thanh.name_tinh FROM

chi_tiet_ky_thuat, cong_cu, bai_bao, nhom_bai_bao, don_vi_hanh_chinh, tinh_thanh WHERE chi_tiet_ky_thuat.makythuat = cong_cu.makythuat

AND chi_tiet_ky_thuat.mabaibao = bai_bao.mabaibao AND don_vi_hanh_chinh.code_tinh = tinh_thanh.code_tinh AND don_vi_hanh_chinh.mabaibao = bai_bao.mabaibao AND bai_bao.nhom = nhom_bai_bao.nhom

56

Hình 13 Kết quả truy vấn tương ứng theo tỉnh 5.Xuất ra tên kỹ thuật (cơng cụ) có trong các chủ đề :

SELECT DISTINCT

tenkythuat AS "Công cụ", nhom_bai_bao.tennhom AS "Chủ đề" FROM

chi_tiet_ky_thuat, cong_cu, bai_bao, nhom_bai_bao

WHERE chi_tiet_ky_thuat.makythuat = cong_cu.makythuat AND chi_tiet_ky_thuat.mabaibao = bai_bao.mabaibao AND bai_bao.nhom = nhom_bai_bao.nhom

57

Hình 14 Kết quả truy vấn công cụ theo chủ đề 6.Xuất ra thông tin các kỹ thuật (công cụ) bắt đầu bằng chữ N

SELECT DISTINCT

tenkythuat AS "Công cụ", kythuatchinh AS "Kỹ thuật chính", kythuatchitiet AS "Kỹ thuật chi tiết", kythuatthucap AS "Kỹ thuật thứ cấp", tenbai AS "Tên"

FROM

chi_tiet_ky_thuat, cong_cu, bai_bao

WHERE chi_tiet_ky_thuat.makythuat = cong_cu.makythuat AND chi_tiet_ky_thuat.mabaibao = bai_bao.mabaibao AND tenkythuat LIKE N'N%'

58

Hình 15 Kết quả truy vấn bằng ký tự bất kỳ

7.Xuât ra thông tin “giá trị” ; “ghi chú” của giá trị kỹ thuật của từng bài báo

SELECT DISTINCT

tenbai AS "Tên", tenkythuat AS "Công cụ", giatri AS "Gía trị", ghichu AS "Ghi chú" FROM

chi_tiet_ky_thuat, cong_cu, bai_bao, gia_tri_ky_thuat

WHERE chi_tiet_ky_thuat.makythuat = cong_cu.makythuat AND chi_tiet_ky_thuat.mabaibao = bai_bao.mabaibao

AND chi_tiet_ky_thuat.mabaibao = gia_tri_ky_thuat.mabaibao ORDER BY tenkythuat;

59

Hình 16 Kết quả truy vấn bằng giá trị kỹ thuật 8.Xuất ra thông số của từng bài báo (bảng thong_so_ky_thuat)

SELECT DISTINCT

thongso AS "Thông Số", tenbai AS "Tên" FROM

chi_tiet_ky_thuat, cong_cu, bai_bao, gia_tri_ky_thuat, thong_so_ky_thuat WHERE chi_tiet_ky_thuat.makythuat = cong_cu.makythuat

AND chi_tiet_ky_thuat.mabaibao = bai_bao.mabaibao AND thong_so_ky_thuat.maxuly= gia_tri_ky_thuat.maxuly ORDER BY tenbai;

60

Hình 17 Kết quả truy vấn bài báo

9.Xuất ra cá thông tin bài báo cùng với tỉnh thành , quận huyện , phường xã:

Một phần của tài liệu XÂY DỰNG HỆ TÌM KIẾM TRI THỨC THÔNG TIN ĐỊA LÝ CÁC ĐỀ TÀI KHOA HỌC VỀ GIS (Trang 38)

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

(80 trang)