4 votos

Cambiar el valor de coordenadas de un objeto Pointz con python

¿Cómo puedo cambiar la X,Y o Z valor de un Pointz cuentan con python en QGIS? Estoy tratando de cambiar los valores Z de Pointz con un plugin de python. Les estoy tratando de pasar de la función seleccionada a una variable en el programa. Puedo llegar a la geometría en el programa y en la consola.

selection = layer.selectedFeatures()[0]
geom = selection.geometry()
print(geom)
<QgsGeometry: PointZ (26141648.89000000059604645 642064.42000000004190952 
767.54999999999995453)>

Entonces me quedo atascado tratando de conseguir la Z de coordenadas de salida. He probado la geom.z() y geom.id() y me da errores. geom.asPoint()[1] no me dan los valores de X e y, pero no de la a a la Z. hay una manera de obtener y cambiar la "Z"

<QgsGeometry: PointZ (26141648.89000000059604645 642064.42000000004190952 
767.54999999999995453)>
geom.x()
Traceback (most recent call last):
File "C:\PROGRA~1\QGIS3~1.4\apps\Python37\lib\code.py", line 90, in runcode
exec(code, self.locals)
File "<input>", line 1, in <module>
AttributeError: 'QgsGeometry' object has no attribute 'x'

5voto

John Feminella Puntos 123

Necesitas acceder al objeto QgsPoint subyacente. Piense en QgsGeometry como un "contenedor" que contiene un punto, una línea, un polígono, etc. Para hacer esto, debe llamar ".get ()" en QgsGeometry.

Es decir

 geom.get().x()
geom.get().z()
geom.get().setZ(5)
 

Etc

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X