6 votos

Programación de la agrupación de múltiples capas en grupos separados utilizando QGIS?

Estoy tratando de grupo de un gran número de capas basada en una porción de cadena de nombre. Son una mezcla de polígonos y puntos. Me gustaría crear grupos, utilizando la parte del nombre de la capa. Alguien tiene alguna idea? Yo estaba buscando para construir un plugin, pero soy incapaz (debido a mis habilidades de codificación).

Os adjunto una imagen para mostrar lo que estoy buscando, ya que el resultado final. Tengo proyectos con una gran cantidad de información que debe ser agrupados.

enter image description here

9voto

Elliott Maynard Puntos 11

Usted puede hacerlo en tres pasos: Obtener los nombres de los grupos, crear grupos, y mover capas.

Para propósitos de prueba, he replicado su escenario de ejemplo:

enter image description here

Ejecutar el siguiente fragmento de código en su QGIS consola de Python:

# 1. Get group names and list of layer ids
root = QgsProject.instance().layerTreeRoot()
dictGroups={}
for layer in root.findLayers():
  if QgsLayerTree.isLayer(layer):
    prefix="Site "+layer.layerName().split("_")[0] # Adjust this to fit your needs
    if not prefix in dictGroups:
      dictGroups[prefix]=[]
    dictGroups[prefix].append(layer.layerId())

# 2. Create groups
for key in dictGroups:
  root.addGroup(key)

# 3. Move layers
for key in dictGroups:
  parent = root.findGroup(key)
  for id in dictGroups[key]:
    layer = root.findLayer(id)
    clone = layer.clone()
    parent.insertChildNode(0, clone)
    root.removeChildNode(layer)

Usted debe obtener algo como esto:

enter image description here

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