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:

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:

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