Trang chủ QGIS Lập trình Python QGIS - PyQGIS Bài 8: Vẽ Polyline và Polygon

Bài 8: Vẽ Polyline và Polygon

- 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)

Vẽ Polyline

Để vẽ một Polyline, sử dụng lớp QssRubberBand. Nhưng trước tiên, chúng ta cần khởi tạo canvas trước bằng giao diện QGIS.

canvas=iface.mapCanvas()

Sử dụng lớp QssPoints sau đó một danh sách các tọa độ điểm cho một đa tuyến được xác định. Sau đó, chúng ta thiết lập hình học với lớp QssGeometry và đặt các điểm được xác định làm đối số. Cuối cùng tùy chỉnh cách polyline trông như thế nào. Đặt màu của nó và chiều rộng của đa tuyến. Mã code hoàn chỉnh như sau:

#Drawing Polyline
polyline = QgsRubberBand(canvas, False)  # False = not a polygon
points =[QgsPoint(-124,48), QgsPoint(-124,51 ), QgsPoint(-120,51),QgsPoint(-120,48)]
polyline.setToGeometry(QgsGeometry.fromPolyline(points), None)
polyline.setColor(QColor(255, 0, 0))
polyline.setWidth(3)

Vẽ Polygon

Tương tự với Polyline, chúng tôi cũng sử dụng lớp QssRubberBand để vẽ Polygon. Nhưng trong việc xác định danh sách điểm, chúng tôi đang sử dụng lớp QssPointXY thay vì QssPoint. Sau đó, chúng tôi tùy chỉnh màu phác thảo của Polygon, đó là màu rộng và tô màu. Mã code hoàn chỉnh để vẽ đa giác như sau:

#Drawing Polygon
polygon = QgsRubberBand(canvas)
p_points=[QgsPointXY(-123, 49), QgsPointXY(-123, 50),QgsPointXY(-121, 50),QgsPointXY(-121,49)]
polygon.setToGeometry(QgsGeometry.fromPolygonXY([p_points]),None)
polygon.setColor(QColor(0, 0, 255))
polygon.setFillColor(QColor(255,255,0))
polygon.setWidth(3)

Hình dưới cho thấy Polyline và Polygon từ mã ở trên. Chúng ta có thể thấy một Polyline và một Polygon màu vàng với đường viền màu xanh lam trong khung vẽ bản đồ của QGIS. Để hiển thị và ẩn đối tượng vẽ, sử dụng phương thức ẩn và hiển thị. Nhập nó trong console.

polyline.hide() # to hide polygon
Polyline.show() # to show polygon
Vẽ Polyline và Polygon

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

Bình luận bằng Facebook Comments

MẠNG XÃ HỘI

1,010ThíchThích
263Đă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...