Bài 2: Thêm lớp Vector

- Quảng cáo -

Bài 1: Bắt đầu với lập trình Python QGIS
Bài 2: Thêm lớp Vector
Bài 3: Thêm lớp Raster
Bài 4: Làm việc với lớp Vector
Bài 5: Cách thêm/xóa trường và cập nhật giá trị thuộc tính
Bài 6: Thêm dữ liệu CSV
Bài 7: Drawing Marker
Bài 8: Vẽ Polyline và Polygon
Bài 9: Animate GPS Track
Bài 10: Đặt và tải lại nguồn dữ liệu bản đồ cơ sở (Basemap)

Bài viết này sẽ thảo luận về cách hiển thị dữ liệu vectơ với python trong QGIS. Bao gồm hai phương thức để hiển thị dữ liệu vectơ bằng giao diện QGIS và thể hiện dự án QGIS.

Thêm lớp Vector với API QGIS

Chúng tôi đang bắt đầu hướng dẫn này bằng cách thêm một lớp vectơ ở định dạng shp bằng API QGIS. Để thêm một lớp vectơ với API giao diện QGIS có thể được thực hiện bằng phương thức addVectorLayer như trong biểu thức sau:

layer=iface.addVectorLayer(path:string,layer_name:string,library:string) 

Ví dụ: để thêm một lớp đường phố với tên public_streets.shp với thư viện tính năng đơn giản ogr sẽ là:

layer=iface.addVectorLayer("F:\public_streets.shp","street","ogr") 

Hình dưới cho thấy kết quả khi biểu thức được thực thi. Dữ liệu đường phố sẽ được thêm vào lớp QGIS và dữ liệu được hiển thị trong khung bản đồ của QGIS:

Lớp vector được thêm vào canvas bản đồ QGIS

Thêm lớp Vector với Project Instance

Phương pháp thứ hai chúng ta sẽ sử dụng thể hiện dự án để thêm dữ liệu vectơ. Đối với điều này, chúng tôi sử dụng các biểu thức cú pháp sau đây:

QgsProject.instance().addMapLayer(layer:QgsVectorLayer) #to add a vector layer QgsProject.instance().addMapLayers(layer list:QgsVectorLayer]) #to add a list of vector layer 

Từ cú pháp trên có thể thấy rằng chúng ta có thể sử dụng phương thức addMapLayer để thêm một lớp hoặc addMapLayers để thêm nhiều hơn một lớp trong danh sách. Ngoài ra, chúng ta cũng có thể quan sát rằng lớp được hiển thị phải được xác định là lớp vectơ với lớp QssVectorLayer. Vì vậy, trước tiên chúng ta phải định nghĩa lớp bằng cách sử dụng lớp với cú pháp sau:

layer=QgsVectorLayer(path:string,layer_name:string,library:string) 

Đoạn code dưới đây cho thấy ví dụ về việc thêm lớp với phương thức này:

#Defining Layer with QgsVectorLayer street_layer=QgsVectorLayer("F:\public_streets.shp","street","ogr") park_layer=QgsVectorLayer("F:\park_polygons.shp","park","ogr") crime_layer=QgsVectorLayer("F:\crime_shp_2016.shp","crime","ogr") #Add a list of layer  QgsProject.instance().addMapLayers([street_layer,park_layer]) #Add a single layer  QgsProject.instance().addMapLayer(crime_layer) 

Hình dưới đây cho thấy kết quả của việc thực thi mã code. Có thể thấy rằng ba lớp đó đã được thêm vào cây lớp và được hiển thị trong khung bản đồ của QGIS:

Thêm lớp vectơ với QGIS Project instance

Trên đây là tất cả các hướng dẫn làm thế nào để thêm lớp vector với python trong QGIS.

Bình luận bằng Facebook Comments

MẠNG XÃ HỘI

1,010ThíchThích
432Đăng kýĐăng Ký

TOOL PXTmap.com

BÀI VIẾT LIÊN QUAN

Bài 14: Viết kịch bản xử lý

Trong các bài trước, chúng tôi đã đề cập đến cách chạy các công cụ Processing cũng như cách xâu chuỗi các...

Bài 13: Tạo các hàm để tải các lớp GeoPackage

Hiện tại chúng ta đã từng sử dụng GeoPackages. Ví dụ: trong Tải một lớp vectơ, chúng tôi đã giới thiệu cách...

Bài 12: Sử dụng biểu thức để tính giá trị

Trong các bài trước đây, chúng tôi đã đề cập đến cách tạo các lớp vectơ, cách thêm các trường vào bảng...

Bài 11: Quản lý các lớp dự án (đổi tên và loại bỏ)

Trong các bài trước, chúng tôi đã đề cập đến việc thêm các lớp từ các tệp cũng như tạo các lớp...

Bài 10: Công cụ chuỗi xử lý (Chaining Processing)

Trong Bài 7: Chạy công cụ xử lý (Processing), chúng ta đã khám phá những điều cơ bản của việc chạy các...