Estou tentando criar uma junção / relação no QGIS, onde tenho um arquivo de forma de edifícios e gostaria de me juntar a uma tabela não espacial (.csv) contendo pessoas que trabalham em cada edifício. Portanto, tenho vários registros na minha tabela que gostaria de poder associar aos meus recursos únicos no meu shapefile. Só posso executar uma junção no QGIS onde o primeiro registro está associado ao recurso shapefile (ou seja, construção), mas os registros subsequentes são removidos.
Alguém poderia me informar como concluir essa associação / relação no QGIS?
qgis
attribute-joins
Mick
fonte
fonte
Respostas:
Resolvi esse problema usando o QGIS 1.7.0, primeiro salvando a camada de vetor como uma tabela de valores separados por vírgula (CSV) com o campo de geometria convertido em texto conhecido. Para fazer isso, o campo de camada da caixa de diálogo "Salvar camada de vetor como ..." deve ler GEOMETRY = AS_WKT para criar um campo de texto conhecido da geometria com a coluna WKT.
O arquivo de geometria CSV foi então associado à tabela de atributos não-geometria em uma junção um-para-muitos na guia junções de propriedades da tabela de atributos não-geometria.
A junção resultante foi salva como outro arquivo CSV de geometria.
Quando esta tabela é aberta no QGIS, cada registro de atributo foi representado por sua geometria vetorial apropriada.
Ao fazer tudo isso, descobri que o Delimited Text Plugin não é necessário para abrir um arquivo de geometria CSV se os delimitadores forem vírgulas e o campo de geometria WKT for nomeado WKT.
Para obter detalhes sobre como isso é feito, consulte meu tutorial em http://georgiawildlife.com/node/2849 .
fonte
ogr2ogr
para criar os arquivos CSV a partir dos Shapefiles. Em seguida, um script R simples para mesclar os arquivos no campo comum que eu queria e escrever de volta para CSV. Então,ogr2ogr
novamente, para criar o shapefile mesclado.As junções criadas nas propriedades da camada apenas adicionam colunas aos recursos existentes. Se a camada vetorial tiver apenas 160 recursos, uma junção não poderá aumentar o número de recursos!
Use o recurso de camada virtual. Oferece junções reais do tipo SQL / banco de dados. Por exemplo, veja minha postagem recente: Pequenos múltiplos para mapas de fluxo OD usando camadas virtuais
fonte
No QGIS 1.7, há um novo mecanismo para Joins (você o encontra nas propriedades do vetor).
As tabelas sem geometria agora podem ser adicionadas a um projeto como qualquer outra camada (vetorial).
fonte
A partir da versão 2.2, o QGIS suporta relações um para muitos. Defina-os nas Propriedades do projeto, não nas Propriedades da camada de vetor. E, em seguida, os registros relacionados aparecerão na Tabela de atributos da camada ou em Identificar resultados por meio do formulário.
Veja a resposta e o link para um bom guia aqui .
fonte
Faça a junção no LibreOffice Base.
Você não pode superar o fato de estar tentando gerenciar um relacionamento de 1 para muitos.
Para não espacial e não espacial, vale a pena o esforço para aprender. Acho que o maior truque é garantir que os campos dos atributos de junção tenham exatamente os mesmos termos.
Abra os dados espaciais localizados como uma camada no QGIS, selecione todos os registros na tabela de atributos no QGIS (seleção limpa, seleção invertida) e copie-os para uma nova planilha no LibreOffice Calc. Você encontrará o primeiro campo é WKT, que é uma descrição do recurso que pode ser usado universalmente no GIS. O Calc exibirá uma caixa de diálogo para importar a tabela colada, escolher delimitado por tabulação, garantir que a vírgula não esteja marcada, pois irá mastigar o campo WKT em bits. Em seguida, destaque esta tabela no Calc, alterne para Base, destaque o ícone Tabelas à esquerda e cole. O Base passará por um diálogo para importar a tabela. O campo WKT pode ser retido por meio da associação e, quando o arquivo é importado de volta para o QGIS como um arquivo .csv, eles são usados para realocar os recursos. Apenas lembre-se da projeção.
Dessa forma, você terá controle total da junção e poderá fazê-lo em "reverso". Para fazer junções no Base, assegure-se de que o campo de dados exclusivo (o 1) seja uma chave primária e, em seguida, aponte-o para "muitos" se estiver familiarizado com o conceito 1 para muitos ou 1 para n. As junções são configuradas criando relacionamentos | FERRAMENTAS |. Como mencionei, você provavelmente desejará chutar alguém quando encontrar que os campos de junção têm as mesmas informações, mas usaram texto ou sintaxe diferente para representá-lo.
hth
fonte
Eu não acho que isso seja possível vincular tabelas com um relacionamento de 1 para muitos no QGIS. Como alternativa, você pode tentar o gvSIG. Aqui você pode criar 1 para muitos links. Após criar o link, a seleção de um recurso no mapa destacará todos os registros relacionados na tabela vinculada.
fonte