如何通过Python程序在QGIS中创建3D多边形?

问题描述 投票:0回答:1

在 3d 坐标中有一条类似道路的东西。我需要将其存储到 3D 多边形(或 QGIS 可以使用的任何类似的东西)中。 example_pointlist = ((0,0,130), (50,0,140), (70,10,150), (70,20,145), (49,10, 135), (0,10,130)) 这些 6 个点被描述为开放多边形。我知道这并不平坦。它是一种网格。我如何在 QGIS 中创建它(通过 python)?有什么想法吗?

我尝试过: QgsGeometry.fromPolygonXY([example_pointlist ]) --> 必须是 QgsPointXY (由于缺少 z 分量而不起作用)

其他一些东西 - 但没有任何效果。有任何想法吗? (我使用 QGIS 3.28 Firenze)

python qgis
1个回答
0
投票

QgsPointXY
不支持3D (
Z
)。在制作多边形之前,您需要构建
QgsPoint
sthis方式):

from qgis.core import QgsLineString, QgsPoint, QgsPolygon

example_pointlist = (
    (0, 0, 130),
    (50, 0, 140),
    (70, 10, 150),
    (70, 20, 145),
    (49, 10, 135),
    (0, 10, 130),
)

poly3d = QgsPolygon(QgsLineString([QgsPoint(*p) for p in example_pointlist]))

输出(3D 地图视图):

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.