6 votos

¿Añadir funciones con PyQGIS?

Soy nuevo en PyQGIS y estoy teniendo algunas dificultades. Estoy tratando de aplicar / utilizar "agregar" (polilínea) funcionalidad en mi plugin python. Sé que puedo hacer esto definiendo puntos de inicio y finalización.

PyQGIS, construir una polilínea:

line_start = QgsPoint(50,50)
line_end = QgsPoint(100,150)
line = QgsGeometry.fromPolyline([line_start,line_end])

Esto es lo que estoy tratando de evitar. Me gustaría usuario digitalizar / crear polilínea haciendo clic en el lienzo del mapa para geometría. ¿Cómo puedo hacerlo?

3voto

Elliott Maynard Puntos 11

Usted puede iniciar una sesión de edición en su capa de línea y activar la Add Feature herramienta mediante la inclusión de este código en tu plugin:

layer = self.iface.activeLayer() # See the note below...
layer.startEditing()
self.iface.actionAddFeature().trigger()

NOTA: el modo de acceso a la capa de línea pueden diferir en su caso. Usted podría, por ejemplo, obtener la capa por su nombre (si ya está cargado en QGIS) o incluso carga por sí mismo, proporcionando una URI, el nombre y el proveedor de datos.

Si desea guardar las modificaciones realizadas en la línea de la capa de tu plugin, usted puede llamar a:

layer.commitChanges()

Por otro lado, si desea revertir cualquier edición realizada en la capa ya que usted llama startEditing(), puede llamar a:

layer.rollBack()

Espero que ayude!

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