¿Unir múltiples registros a una sola función usando QGIS?

24

Estoy tratando de crear una unión / relación en QGIS donde tengo un shapefile de edificios y para eso me gustaría unirme a una tabla no espacial (.csv) que contiene personas que trabajan en cada edificio. Por lo tanto, tengo varios registros en mi tabla que me gustaría poder unir a mis características únicas en mi shapefile. Solo puedo ejecutar una unión en QGIS, donde el primer registro se une a la función shapefile (es decir, la construcción), pero los registros posteriores se eliminan.

¿Podría alguien decirme cómo completar esta unión / relación en QGIS?

    
pregunta Mick 08.06.2011 - 23:05

6 respuestas

14

Resolví este problema utilizando QGIS 1.7.0 guardando primero la capa vectorial como una tabla de valores separados por comas (CSV) con el campo de geometría convertido a texto conocido. Para hacer esto, el campo de capa del cuadro de diálogo "Guardar capa vectorial como ..." debe leer GEOMETRY = AS_WKT para crear un campo de texto conocido de la geometría con la columna denominada WKT.

El archivo de geometría CSV luego se unió a la tabla de atributos no geométricos en una combinación de uno a varios en la pestaña de combinaciones de propiedades de la tabla de atributos no geométricos.

La unión resultante se guardó como otro archivo CSV de geometría.

Cuando esta tabla se abre en QGIS, cada registro de atributo se representó por su geometría de vector apropiada.

Al hacer todo esto, descubrí que el complemento de texto delimitado no es necesario para abrir un archivo de geometría CSV si los delimitadores son comas y el campo de geometría WKT se llama WKT.

Para obtener detalles sobre cómo se hace esto, consulte mi tutorial en enlace .

    
respondido por el Greg Krakow 19.01.2012 - 16:26
8

Las uniones creadas en las propiedades de la capa solo agregan columnas a las entidades existentes. Si la capa vectorial solo tiene 160 entidades, una unión no puede aumentar la cantidad de entidades.

Utilice la función de capa virtual en su lugar. Ofrece uniones de SQL / base de datos reales. Para ver un ejemplo, vea mi publicación reciente: Pequeños múltiplos de Mapas de flujo OD utilizando capas virtuales

    
respondido por el underdark 20.05.2017 - 15:04
7

En QGIS 1.7 hay un nuevo motor para uniones (lo encuentras en las propiedades del vector).

Ahora se pueden agregar tablas sin geometría a un proyecto como cualquier otra capa (vector).

    
respondido por el Giovanni Manghi 09.06.2011 - 10:12
6

A partir de la versión 2.2, QGIS admite relaciones de uno a varios. Sin embargo, defínalos en las Propiedades del proyecto, no en Propiedades de capa vectorial. Y luego, los registros relacionados aparecerán en la Tabla de atributos de la capa o Identificar resultados a través del formulario.

Consulte la respuesta y el enlace a la buena guía aquí .

    
respondido por el antrin 21.06.2016 - 06:01
4

Haz la unión en LibreOffice Base.

No puede superar el hecho de que está tratando de administrar una relación de 1 a muchos.

Vale la pena esforzarse por aprender de no espacial a no espacial. Encuentro que el mayor truco es asegurarse de que los campos de atributo de unión tengan exactamente los mismos términos.

Abra los datos ubicados espacialmente como una capa en QGIS, luego seleccione todos los registros en la tabla de atributos en QGIS (borrar selección, invertir selección) y copiarlos en una nueva hoja en LibreOffice Calc. Encontrará que el primer campo es WKT, que es una descripción de la característica que se puede usar universalmente en GIS. Calc le dará un cuadro de diálogo para importar la tabla pegada, elija la pestaña delimitada, asegúrese de que la coma no esté marcada, ya que masticará el campo WKT en bits. Luego resalte esta tabla en Calc, cambie a Base, resalte el ícono de Tablas a la izquierda y pegue. Base pasará por un diálogo para importar la tabla. El campo WKT se puede conservar a través de la unión y cuando el archivo se importa de nuevo en QGIS como .csv, estos se utilizan para reubicar las funciones. Solo recuerda la proyección.

De esa manera, tendrá el control total de la unión y podrá hacerlo en "reversa". Para hacer uniones en Base, asegúrese de que el campo de datos únicos (el 1) sea una clave principal y luego apunte a "muchos" si está familiarizado con un concepto de 1 a muchos o de 1 a n. Las uniones se crean haciendo relaciones | HERRAMIENTAS |. Como mencioné, probablemente querrá patear a alguien cuando encuentre que los campos de unión tienen la misma información, pero han usado un texto o una sintaxis diferente para representarlo.

hth

    
respondido por el BWill 16.07.2011 - 10:11
2

No creo que esto sea posible para vincular tablas con una relación de 1 a muchos en QGIS. Como alternativa, es posible que desee probar gvSIG. Aquí puedes hacer 1 a muchos enlaces. Después de crear el enlace, la selección de una función en el mapa resaltará todos los registros relacionados en la tabla vinculada.

    
respondido por el Ecodiv 26.09.2011 - 19:14

Lea otras preguntas en las etiquetas