Bài 8: Vẽ Polyline và Polygon

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