1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề ti vẽ v phân tích bản Đồ Địa lý việt nam bằng phần mềm qgis

31 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Vẽ Về Phân Tích Bản Đồ Địa Lý Việt Nam Bằng Phần Mềm QGIS
Tác giả Phạm Trung Hiếu, Hoàng Tú Tuân, Nguyễn Quang Hà
Người hướng dẫn Đỗ Nam Anh
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Chuyên Đề
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 3,77 MB

Cấu trúc

  • CHƯƠNG 1. XÂY DỰNG PLUGIN CHUYỂN ĐỔI TOẠ ĐỘ TRONG QGIS (6)
    • 1.1 Tổng quan (6)
      • 1.1.1 Yêu cầu (6)
      • 1.1.2 Phần mềm và ngôn ngữ lập trình sử dụng (6)
      • 1.1.3 Phân tích yêu cầu, Dữ liệu sử dụng & Các công cụ cần thiết (6)
      • 1.2.1 Kết quả cần đạt (9)
  • CHƯƠNG 2 HƯỚNG DẪN CI ĐẶT (10)
    • 2.1 Truy vấn dữ liệu (10)
    • 2.2 Phân tích thiết kế plugin (10)
      • 2.2.1 Khởi tạo plugin (10)
      • 2.2.2 Thiết kế giao diện (18)
      • 2.2.3 Thiết kế mã nguồn cho plugin (21)
      • 2.2.4 Cài đặt và Sử dụng plugin (26)
  • KẾT LUẬN (31)

Nội dung

Theo đó, giao diện cần xây dựng đượcphân tích bao gồm 3 phần chính:  Ô lựa chọn lớp dữ liệu muốn chuyển đổi toạ độ  Ô lựa chọn toạ độ muốn chuyển  Ô lựa chọn lưu trữ kết quả sau chuyể

XÂY DỰNG PLUGIN CHUYỂN ĐỔI TOẠ ĐỘ TRONG QGIS

Tổng quan

Chuyển toạ độ các lớp trong project hay các shapefile trong 1 thư mục

 Chuyển toạ độ từ EPSG:32648 – WGS 84 / UTM zone 48N (hay toạ độ của lớp dữ liệu hiện có) sang hệ toạ độ VN2000 múi chiếu 60 kinh tuyến trục 1050 (EPSG:4756),

Chuyển đổi tọa độ từ EPSG:32648 (WGS 84 / UTM zone 48N) sang hệ tọa độ VN2000 với múi 30 kinh tuyến trục 1050 30’ (EPSG:3405) có hệ số biến dạng k=0.9999.

1.1.2 Phần mềm và ngôn ngữ lập trình sử dụng

 Ngôn ngữ lập trình: Python

1.1.3 Phân tích yêu cầu, Dữ liệu sử dụng & Các công cụ cần thiết a Phân tích yêu cầu

Xây dựng một plugin để chuyển đổi tọa độ địa lý từ hệ tọa độ WGS84 hoặc hệ tọa độ hiện có của dữ liệu sang hệ tọa độ VN2000 Giao diện của plugin sẽ được thiết kế với ba phần chính để đảm bảo tính hiệu quả và dễ sử dụng.

 Ô lựa chọn lớp dữ liệu muốn chuyển đổi toạ độ

 Ô lựa chọn toạ độ muốn chuyển

 Ô lựa chọn lưu trữ kết quả sau chuyển toạ độ

Theo yêu cầu đã được đưa ra, các tọa độ trong hệ thống thông tin địa lý được tra cứu dựa trên hệ thống trục và được hiểu một cách rõ ràng.

 Toạ độ EPSG:32648 – WGS 84 / UTM zone 48N: là toạ độ địa phương quốc tế, có quy chiếu EPSG

6 mã 32648, hệ toạ độ WGS84, phương pháp chiếu UTM, múi chiếu 48N, đơn vị đo lường là mét,

Toạ độ EPSG:4756 – VN2000 là hệ toạ độ toàn cầu được áp dụng tại Việt Nam, sử dụng mã EPSG 4756 với múi chiếu 60 và kinh tuyến trục 1050 Đơn vị đo lường trong hệ này là độ.

Toạ độ EPSG:3405 - VN2000 / UTM zone 48N là hệ toạ độ địa phương của Việt Nam, sử dụng mã EPSG 3405, hệ toạ độ VN2000 và phương pháp chiếu UTM, tương ứng với múi chiếu 48N.

30, kinh tuyến trục 1050 30’, và hệ số biến dạng k

= 0.9999), đơn vị đo lường là mét.

Trước khi thiết kế một plugin cho Hệ thống thông tin địa lý trong phần mềm QGIS, cần tuân theo quy trình xây dựng và thử nghiệm gồm 5 bước chính, được thực hiện theo trình tự cụ thể.

 Chuẩn bị dữ liệu thử nghiệm mã nguồn (báo cáo này sử dụng dữ liệu địa lý định dạng SHP)

 Khởi tạo plugin mới sử dụng plugin hỗ trợ Plugin Builder

 Tạo mã nguồn Qt cho plugin

 Thiết kế giao diện plugin sử dụng Qt Designer with QGIS

 Sử dụng plugin (kết hợp kiểm thử plugin, tra soát lỗi đồng thời sửa đổi mã nguồn hoặc giao diện) b Dữ liệu sử dụng

Dữ liệu địa lý của Việt Nam được truy xuất từ hệ thống OSM, với giấy phép sử dụng được cấp từ Geofabrik (https://www.geofabrik.de).

 Dữ liệu tải về ở định dạng tệp zip, trong đó bao gồm các shapefile chứa thông tin địa lý Việt Nam c Công cụ cần thiết

 Các công cụ được sử dụng để thực hiện chuyển đổi toạ độ đều sử dụng các Python packages và một số plugins hỗ trợ khác

OGR là một gói phần mềm hỗ trợ thực hiện các chức năng xử lý dữ liệu địa lý cơ bản trong các hệ thống thông tin địa lý mã nguồn mở.

 pyrcc4: là một package đã được cài đặt sẵn trong QGIS, sử dụng như một công cụ để chuyển đổi các mã nguồn Qt thành một mô-đun Python,

 Notepad++: một trình soạn thảo mã nguồn,

 Plugin Builder: một plugin trong QGIS hỗ trợ tạo plugin mới,

 Plugin Reloader: một plugin trong QGIS hỗ trợ làm mới plugin ngay sau khi có bổ sung, cập nhật giao diện,

PyQt là một package hỗ trợ xây dựng giao diện cho QGIS và được ứng dụng trong phần mềm Qt Designer với QGIS Package này được cài đặt đồng thời khi cài đặt QGIS.

 Một số mô-đun Python khác được sử dụng trực tiếp để thiết kế mã nguồn như qgis, pyqgis.

 Chuyển đổi toạ độ của một hoặc nhiều lớp dữ liệu shapefile được mở trong QGIS Đóng gói mã nguồn thành plugin có thể sử dụng được,

 Báo cáo tổng kết bao gồm:

 Mã nguồn plugin ở định dạng tệp zip,

 Hướng dẫn cài đặt và sử dụng phần mềm QGIS và plugin.

HƯỚNG DẪN CI ĐẶT

Truy vấn dữ liệu

Dữ liệu OSM có thể truy vấn qua nhiều phương pháp khác nhau Một số nhà phát triển plugin trong lĩnh vực GIS đã tạo ra các công cụ như QuickOSM và OSMDownloader, giúp người dùng truy cập và lấy dữ liệu OSM một cách nhanh chóng và hiệu quả.

Dữ liệu thử nghiệm được lấy từ hệ thống Geofabrik, một nguồn cung cấp dữ liệu địa lý toàn cầu cho OpenStreetMap (OSM) Người dùng có thể truy cập dữ liệu này qua liên kết: http://download.geofabrik.de/asia/vietnam-latest-free.shp.zip.

Tệp vietnam-latest-free.shp.zip chứa dữ liệu địa lý được nén, bao gồm các tệp shapefile và các tệp mở rộng Shapefile, viết tắt là ESRI Shapefile (SHP), là định dạng tệp dữ liệu địa lý do Công ty ESRI phát triển, cho phép lưu trữ tối đa 2GB dữ liệu và chỉ chứa một loại định dạng địa lý duy nhất, như Points, Polyline hoặc Polygon Trong Hệ thống thông tin địa lý, shapefile được coi là Dữ liệu Vector, vì các dữ liệu trong tệp này được biểu diễn bằng các vector trong không gian.

Các shapefile có các tệp mở rộng đi kèm thông thường bao gồm các tệp sau: DBF, SHX, PRJ, CPG

Phân tích thiết kế plugin

 Bước 1 – cài đặt plugin Plugin Builder, plugin Plugin Reloader và khởi tạo plugin mới: tại giao diện của phần mềm QGIS, chọn Plugins

-> Manage and Install Plugins -> Nhập “Plugin Builder 3” vào ô Search tại mục All -> Install Plugin (chờ cài đặt plugin) -> Close.

Tương tự, tìm kiếm và cài đặt plugin Plugin Reloader,

Hình 2 1 Truy cập vào trình Quản lý và Cài đặt plugin

Hình 2 2 Giao diện lưa chọn dữ liệu

 Bước 2 - tạo mới plugin: trong giao diện QGIS, chọn Plugins ->

Plugin Builder -> Plugin Builder, sau đó nhập thông tin cho plugin ở trình tạo plugin mới và thực hiện theo các hướng dẫn của trình tạo,

Hình 2 3 Truy cập vào trình tạo plugin mới

Hình 2 4 Bảng điền thông tin cho plugin mới (cần cung cấp hết toàn bộ thông tin xuất hiện trong bảng)

Tất cả các thông tin xuất hiện trong bảng đều cần được cung cấp, trong đó bao gồm:

 Class name – tên một lớp chức năng,

 Description – mô tả về plugin,

 Module name – tên thư mục lưu trữ plugin,

 Version number - số phiên bản được phát hành,

 Minimum QGIS version – yêu cầu về phiên bản QGIS mà plugin có thể sử dụng được,

 Author / Company – tên đơn vị hoặc nhà phát triển,

 Email address – email của đơn vị hoặc nhà phát triển,

Sau khi hoàn tất thông tin, nhấn Next,

Hình 2 5 Mô tả về plugin Ở màn hình xuất hiện tiếp theo, nhập vào một số mô tả về plugin Sau khi hoàn tất thông tin, nhấn Next,

Hình 2 6 Chọn chế độ cài đặt plugin vào QGIS Ở màn hình tiếp, cần điều chỉnh một số thông tin sau:

 Template: chọn Tool button with dialog

 Text for the menu item: nhập “Chuyển toạ độ cho Vector”

 Menu: chọn Vector (plugin sẽ được thêm vào mục Vector trên thanh điều khiển của QGIS)

Sau khi hoàn tất thông tin, nhấn Next,

Hình 2 7 Các thiết lập cần thiết sau khởi tạo plugin mới (để mặc định tất cả các lựa chọn trên)

Hình 2 8 Các thiết lập tiếp theo sau khởi tạo plugin mới

In the plugin storage information screen, select the option to flag the plugin as experimental to indicate its trial nature, and then click Next.

Hình 2 9 Chọn thư mực lưu trữ bất kỳ cho plugin mới

Tại màn hình chọn thư mục lưu trữ cho plugin mới, hãy chọn và tìm đến thư mục hiển thị như trong hình xx, sau đó nhấn Generate Khi quá trình tạo plugin hoàn tất, một thông báo sẽ xuất hiện.

Hình 2 10 Thông báo tạo mới plugin thành công

- Bước 1 - khởi chạy phần mềm Qt Designer with QGIS,

- Bước 2 - mở trình tạo giao diện: giao diện Qt Designer with QGIS xuất hiện hộp thoại cho phép tìm kiếm tệp giao diện, chọn Open ->

Chọn tệp “.ui” trong thư mục lưu trữ plugin (ở ví dụ trên, tệp ui có đường dẫn sau

“D:/chuyen_doi_toa_do/chuyen_doi_toa_do_dialog_base.ui”)

Hình 2 11 Hộp thoại mở trình tạo giao diện ban đầu sau khi khởi chạy phần mềm

- Bước 3 - xây dựng giao diện: theo phân tích ban đầu, giao diện cần gồm 4 phần chính là:

 Ô lựa chọn lớp dữ liệu muốn chuyển đổi toạ độ

 Ô lựa chọn toạ độ muốn chuyển

 Ô lựa chọn lưu trữ kết quả sau chuyển toạ độ

Hình 2 12 Thiết kế giao diện plugin Để thiết kế giao diện plugin đơn giản, sử dụng một số giao diện có sẵn trong phần Widget Box như sau:

- Phần khung ngoài, bao gồm Chọn lớp dữ liệu muốn chuyển đổi và Lựa chọn tệp đầu ra: sử dụng Group Box trong mục Containers,

- Phần Lớp dữ liệu cần đổi toạ độ: sử dụng Label trong mục Display Widgets và Combo Box trong mục Input Widgets,

- Phần Hệ toạ độ đích: sử dụng Label trong mục Display Widgets và QgsProjectionSelectionWidget,

- Phần Đặt tên cho tệp đầu ra: sử dụng Label trong mục Display Widgets và Push Button trong mục Buttons.

Sau khi hoàn thành thiết kế, hãy chọn File -> Save để lưu lại Tiếp theo, sao chép toàn bộ thư mục chứa plugin vào thư mục plugin mặc định của QGIS, với đường dẫn là “C:\Users\Admin\AppData\Roaming\QGIS\”.

QGIS3\profiles\default\python\plugins”) Sau đó, khởi chạy phần mềm

QGIS và kiểm tra kết quả.

Sau khởi chạy QGIS, mở lại trình Quản lý và Cài đặt plugin, trong mục Installed, tích chọn Chuyển đổi toạ độ để kích hoạt plugin.

Hình 2 14 Plugin sẵn sàng cho việc sử dụng

2.2.3 Thiết kế mã nguồn cho plugin

Plugin Builder giúp rút ngắn thời gian thiết kế mã nguồn cho plugin mới,giúp tiết kiệm thời gian của các nhà phát triển plugin trong các phần mềm

QGIS là một hệ thống thông tin địa lý (GIS) mạnh mẽ, trong đó Plugin Builder được sử dụng để tạo ra các tệp mã nguồn và tệp giao diện người dùng (UI) có thể chỉnh sửa Khi khởi tạo một plugin mới, ban đầu chỉ có khung bên ngoài của plugin, bao gồm tên Plugin Chuyển đổi tọa độ và các tác vụ cơ bản.

Plugin được thiết kế với giao diện rõ ràng gồm ba phần, cho phép người dùng dễ dàng chuyển đổi hệ tọa độ mà không cần quan tâm đến tọa độ gốc của lớp dữ liệu Tuy nhiên, để thực hiện việc chuyển đổi, lớp dữ liệu cần phải có thông tin về tọa độ Một nhược điểm khác là dữ liệu lưu từ giao diện không thể ghi đè, do đó người dùng cần đặt tên khác nhau cho mỗi lần sử dụng plugin Mặc dù giao diện hiện tại chưa hoàn chỉnh, plugin đã hoạt động tương đối tốt sau khi được thiết kế mã nguồn.

Quá trình thiết kế lệnh trên giao diện trở nên nhanh chóng nhờ vào các tệp mã nguồn gốc đã có sẵn Giao diện hiển thị 4 lệnh, được chia thành 2 phần chính: phần liên kết giao diện với 2 lệnh và phần thực hiện tác vụ của plugin với 2 lệnh còn lại Để thiết kế mã nguồn, Notepad++ được cài đặt và sử dụng như một trình soạn thảo mã hiệu quả.

Về phần liên kết giao diện:

Lệnh đầu tiên trong phần mềm QGIS là gọi các lớp hiện có và nhập chúng vào ô lựa chọn trong phần Lớp dữ liệu cần đổi tọa độ Ô lựa chọn này được thiết kế dưới dạng một đối tượng (object) và có tên truy vấn là mMapLayerComboBox.

Hình 2 15 Mã nguồn cho lệnh thứ nhất

Mã nguồn cho lệnh này được hiểu như sau:

 layers = QgsProject.instance().layerTreeRoot().children(): tìm kiếm tất cả các lớp dữ liệu đang được mở trong phần mềm QGIS

The code snippet adds all vector data layers to the "Data Layer" selection box, specifically designed for converting the coordinates of a vector layer sourced from OpenStreetMap (OSM) This is achieved by filtering the layers to include only those of the type "QgsVectorLayer."

- Lệnh thứ hai - gọi hộp thoại cho phép đặt tên cho tệp đầu ra và lưu ở dạng shp:

Hình 2 16 Mã nguồn cho lệnh thứ hai

Lệnh này được thiết kế trong giao diện với object tên pushButton, để tương tác với object này, sử dụng lệnh self.dlg.pushButton (ô kí hiệu

Chương trình select_output_file cho phép người dùng mở hộp thoại lưu trữ để chọn đường dẫn cho tệp kết quả đầu ra Lệnh self.dlg.lineEdit.setText(filename) sẽ nhập tên tệp vào ô nhập và tự động thêm phần mở rộng, tạo ra tên tệp cuối cùng như mong muốn.

Hình 2 17 Tên tệp kết quả được trả về vào object tên lineEdit với phần mở rộng mặc định là shp

Về phần thực hiện tác vụ của plugin:

- Lệnh thứ 3 - lựa chọn hệ toạ độ đích cần chuyển đổi:

Hình xx Gọi toạ độ được chọn trong ô lựa chọn toạ độ

Trong giao diện của plugin, phần Hệ tọa độ đích được thể hiện qua đối tượng mQgsProjectSelectionWidget Để truy cập đối tượng này, sử dụng lệnh self.dlg.mQgsProjectSelectionWidget, sau đó gọi lệnh crs() để lấy thông tin về tọa độ đã chọn Thông tin này sẽ được sử dụng như một trong các tham số cho quá trình chuyển đổi tọa độ.

- Lệnh thứ 4 – tác vụ thực hiện chuyển đổi toạ độ:

Sau khi nhấn chọn nút OK tại giao diện, plugin sẽ tiến hành thực thi chuyển đổi toạ độ Mã nguồn cho lệnh này được thiết kế như sau:

Đầu tiên, khởi tạo lệnh để giao diện giao tiếp với các mã nguồn thành phần và thực thi chúng Gọi lệnh khởi tạo thực thi plugin và lưu trữ vào biến result Khi result trả về giá trị True, plugin thực hiện tác vụ khi nút OK được nhấn Lớp dữ liệu cần đổi tọa độ được chọn qua lệnh self.dlg.mMapLayerComboBox.currentLayer(), lưu vào biến selectedLayer, từ đó truy xuất nguồn dữ liệu và lưu ở biến layer_path Tiếp theo, lệnh thứ 3 truy xuất tọa độ đích và lưu ở biến destCRS Biến output_path lưu trữ tên tệp đầu ra, trong khi các thông số chuyển đổi tọa độ được xác định và lưu trữ trong biến parameter dạng Dictionary, bao gồm INPUT trỏ về layer_path, TARGET_CRS trỏ về destCRS, và OUTPUT trỏ về output_path.

The aforementioned variables, once referenced and stored, are utilized in the coordinate transformation command from Qprocessing, and the results are saved in the variable 'result' using the command processing.run('native:reprojectlayer', parameter) This command consists of the following components:

- native:reprojectlayer: thông báo tới QProcessing thực thi lệnh chuyển đổi toạ độ

- parameter: thông báo tới QProcessing các thông số sử dụng để chuyển đổi toạ độ

Cuối cùng, dữ liệu chuyển đổi tọa độ được nhập vào phần mềm QGIS và trở thành một lớp dữ liệu có thể sử dụng, mang tên đã được xác định trước Các lệnh này được thực hiện trong phần #Thêm lớp đã chuyển đổi vào giao diện QGIS.

2.2.4 Cài đặt và Sử dụng plugin

Cài đặt plugin Chuyển đổi toạ độ, bằng 2 cách:

- Cách 1: cóp toàn bộ thư mục plugin vào thư mục lưu trữ plugin của phần mềm QGIS trong thư mục

AppData/Roaming/QGIS/QGIS3/profiles/default/python/plugin/

- Cách 2: sử dụng tệp zip nén toàn bộ dữ liệu của plugin này,

Sử dụng plugin Chuyển đổi toạ độ:

- Bước 1: thêm dữ liệu OSM đã chuẩn bị vào phần mềm QGIS

- Bước 2: mở plugin Chuyển đổi toạ độ

 Chọn lớp dữ liệu cần chuyển đổi toạ độ

 Đặt tên cho tệp kết quả

Hình 2 19 Chuyển sang toạ độ EPSG:4756 (yêu cầu 1)

Hình 2 20 Chuyển sang toạ đô EPSG:3405 (yêu cầu 2)

Sau khi chuyển đổi dữ liệu, bước quan trọng là kiểm tra dữ liệu để đảm bảo tính chính xác Lưu ý rằng trong QGIS, dữ liệu sẽ được hiển thị theo hệ tọa độ mặc định EPSG:4326, do đó có thể không nhận thấy sự khác biệt giữa các tọa độ Để hiển thị lớp dữ liệu đúng theo tọa độ đích đã chọn, cần điều chỉnh hệ tọa độ trong chế độ render.

Hình 2 21 Dữ liệu chuyển đổi sang EPSG:4756 được hiển thị ở toạ độ render mode là EPSG:4756

Hình 2 22 Dữ liệu chuyển đổi sang EPSG:3405 được hiển thị ở toạ độ render mode là EPSG:3405

Bước 5: Sau khi hoàn tất việc thêm các lớp dữ liệu và tạo bản đồ Việt Nam hoàn chỉnh, chúng ta sẽ xuất bản đồ từ QGIS sang định dạng HTML để người dùng có thể truy cập trên web File index.html sẽ được tạo ra sau khi xuất Người dùng có thể di chuột đến các vị trí đánh dấu để xem thông tin chi tiết và tìm kiếm địa điểm thông qua ô kính lúp tìm kiếm.

Ngày đăng: 22/01/2025, 15:09