Estoy tratando de crear una unión / relación en QGIS donde tengo un shapefile de edificios y me gustaría unirme a una tabla no espacial (.csv) que contenga 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 individuales en mi archivo de forma. Solo puedo ejecutar una unión en QGIS donde el primer registro se une a la función shapefile (es decir, construcción) pero los registros posteriores se eliminan.
¿Alguien podría decirme cómo completar esta unión / relación en QGIS?
qgis
attribute-joins
Mick
fuente
fuente
Respuestas:
Resolví este problema usando 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 bien conocido. Para hacer esto, el campo de capa del cuadro de diálogo "Guardar capa de vector como ..." debe leer GEOMETRY = AS_WKT para crear un campo de texto bien conocido de la geometría con la columna denominada WKT.
El archivo de geometría CSV se unió a la tabla de atributos no geométricos en una unión de uno a muchos en la pestaña 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 representa con su geometría vectorial adecuada.
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 http://georgiawildlife.com/node/2849 .
fuente
ogr2ogr
para crear los archivos CSV de los Shapefiles. Luego, un simple script R para fusionar los archivos en el campo común que quería y escribir en CSV. Luegoogr2ogr
nuevamente para crear el archivo de forma combinado.Las uniones creadas en las propiedades de capa solo agregan columnas a las entidades existentes. Si la capa vectorial solo tiene 160 entidades, ¡una unión no puede aumentar el número de entidades!
Utilice la función de capa virtual en su lugar. Ofrece combinaciones reales de tipo SQL / base de datos. Para ver un ejemplo, vea mi publicación reciente: Pequeños múltiplos para mapas de flujo OD utilizando capas virtuales
fuente
En QGIS 1.7 hay un nuevo motor para Uniones (lo encuentra en las propiedades del vector).
Las tablas sin geometría ahora se pueden agregar a un proyecto como cualquier otra capa (vector).
fuente
A partir de la versión 2.2, QGIS admite relaciones uno a muchos. Sin embargo, defínalos en las Propiedades del proyecto, no en las Propiedades de la capa vectorial. Y luego los registros relacionados aparecerán en la Tabla de atributos de la capa o en Identificar resultados a través del formulario.
Vea la respuesta y enlace a una buena guía aquí .
fuente
Haz la unión en LibreOffice Base.
No puede superar el hecho de que está tratando de gestionar una relación de 1 a muchos.
Para no espacial a no espacial, vale la pena el esfuerzo de aprender. Creo que el mayor truco es asegurarse de que los campos de atributo de unión tengan exactamente los mismos términos.
Abra los datos espaciales ubicados como una capa en QGIS, luego seleccione todos los registros en la tabla de atributos en QGIS (selección clara, selección invertida) y cópielos 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 SIG. 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 icono de Tablas a la izquierda y pegue. Base pasará por un cuadro de diálogo para importar la tabla. El campo WKT se puede retener a través de la unión y cuando el archivo se vuelve a importar a QGIS como .csv, estos se utilizan para reubicar las funciones. Solo recuerda la proyección.
De ese modo, tendrá el control total de la unión y podrá hacerlo en "marcha atrás". Para hacer uniones en Base, asegúrese de que el campo de datos único (el 1) es 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 configuran 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 texto o sintaxis diferentes para representarlo.
hth
fuente
No creo que sea posible 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, al seleccionar una función en el mapa se resaltarán todos los registros relacionados en la tabla vinculada.
fuente