Cómo calcular rápidamente las coordenadas del cuadro delimitador de un polígono seleccionado con QGIS

16

Acabo de recuperar manualmente las coordenadas del cuadro delimitador para un polígono de condado, que es una selección de una capa más grande de formas de condado. Me gustaría poder usar un complemento de QGIS u otra función para calcular esto rápidamente y no a mano. Esto es casi seguro, pero no pude encontrar nada con una búsqueda en Google

    
pregunta boulder_ruby 02.12.2013 - 21:17

6 respuestas

24

La siguiente pequeña función de Python generará las coordenadas del cuadro delimitador de la función activa actualmente:

def printBB():
    feature = iface.activeLayer().selectedFeatures()[0]
    print feature.geometry().boundingBox().toString()

Para definir la función, abra la consola de Python desde el menú Complementos, copie y pegue las tres líneas en la consola y presione Entrar. Luego, puede llamar a la función escribiendo printBB() y presionando Intro mientras se selecciona la función deseada.

    
respondido por el Jake 02.12.2013 - 23:09
15

QGIS puede hacerlo a través de Polygon desde Layer Extent

Vector - Herramientas de investigación - Polygon From Layer Extent

Producirá un nuevo shapefile con atributos como XMIN XMAX YMIN YMAX AREA WIDTH HEIGHT

    
respondido por el Jorge Santos 03.12.2013 - 01:40
3

También puedes hacer esto usando el complemento de PyShp en Python. Es mucho más simple ...

import shapefile

sf = shapefile.Reader("Path to shapefile...") 
shapes = sf.shapes() 
bbox = shapes[0].bbox # Retrieves the bounding box of the first shape

print bbox # Will print the bounding box coordinates

Puede encontrar más información sobre PyShp y otras funcionalidades aquí .

    
respondido por el Akhil 10.09.2014 - 06:50
3

Si necesita muchos cuadros delimitadores de polígonos, puede "Guardar como ..." su capa en GeoJSON con WRITE_BBOX = SÍ y habrá un solo atributo "bbox" antes de su atributo "geometría", incluso para multipolígonos.

..., "bbox": [ -70.062408006999874, 12.417669989000046, -69.876820441999939, 12.632147528000104 ], "geometry": ...
    
respondido por el thadk 09.02.2015 - 18:58
1

Tuve que hacer esto para generar un campo que podría importar como una lista en otro lugar.

  1. Instalar QGIS plugin FieldPyculator
  2. Alternar edición de capa
  3. Crear una nueva columna en la tabla de atributos como cadena, por ejemplo. bbox (guardar ediciones)
  4. Open FieldPyculator
  5. Establecer campo de actualización en bbox
  6. En la expresión de campo escribe algo como:

    bb = $geom.boundingBox().toString()

    bb = bb.replace(' ','')

    bb = bb.replace(':',',')

    value = bb

  7. Ejecutar

  8. Desactivar edición y guardar capa
respondido por el Ben 25.08.2015 - 05:08
1

Para un acceso rápido, una opción es mantener las coordenadas de bbox en la tabla de atributos.

  • Modo de edición de Google
  • Inicia Calculadora de campo
  • Establecer crear nuevo campo, establecer nombre (por ejemplo, xmin), tipo (decimal), longitud, (precisión)
  • Expresión: x_min ($ geometry)
  • Obtendrá un nuevo campo en la tabla de atributos con la coordenada IZQUIERDA.

    Repita esto para DERECHO, ABAJO, ARRIBA con expresiones:

  • x_max($geometry)
  • y_min($geometry)
  • y_max($geometry)
  • Ejemplo del resultado

    Luegopuedesconfigurar complemento de AutoFields para actualizar automáticamente estos campos cuando se cambie la función.

        
    respondido por el jurajb 08.02.2018 - 12:42

    Lea otras preguntas en las etiquetas