Se no PgSql a view aparece como o pretendido, desconfio que tem de haver um id único para não baralhar o sig desktop. No select podemos em vez do gid dos polígonos, usar o id único que exista na tabela de população?
Se mesmo assim, houver ids repetidos, teremos de usar um campo do tipo serial: http://www.postgresql.org/docs/8.4/interactive/datatype-numeric.html#DATATYPE-SERIAL http://wiki.postgresql.org/wiki/FAQ#How_do_I_create_a_serial.2Fauto-incrementing_field.3F Eu usaria um id deste tipo na tabela com mais registos, definindo-o como primary key. O mais fácil será usar o pgAdmin para fazer isto. Julgo que também é possível criar a view com um campo serial, mas só experimentando... Tenho quase a certeza que o QGIS precisa de um id único, que seja primary key, para mostrar tabelas espaciais. (Mas isto vai mudando com as versões e pode já não ser verdade...) Falta só mesmo este detalhe final ;) Duarte De: Ana Catarina Ferreira Pinheiro [mailto:[email protected]] Enviada: terça-feira, 9 de Novembro de 2010 14:17 Para: Duarte Carreira; [email protected] Assunto: Re: [Portugal] Join e Relates Boa tarde, Pois, uma ferramenta capaz de fazer este tipo de consultas era o ideal, mas por agora temos de aproveitar as potencialidades do SQL, que são sem dúvida poderosas. Mas eu que ainda sou uma iniciante de SQL ainda ando aqui às aranhas ..... já fiz a view mas ao abrir no arcview ou no kosmo tenho o mesmo problema, no arcview aparece apenas um registo e no kosmo aparecem todos os registos, mas repetidos. Mostro o exemplo: View: SELECT limites_concelhos_vizinhos_edv.gid, limites_concelhos_vizinhos_edv.concelho, limites_concelhos_vizinhos_edv.distrito, limites_concelhos_vizinhos_edv.dico, limites_concelhos_vizinhos_edv.the_geom, pop_res.dico1, pop_res.censos, pop_res.pop_res, pop_res.dens_pop FROM limites_administrativos.limites_concelhos_vizinhos_edv, demografia.pop_res WHERE limites_concelhos_vizinhos_edv.dico = pop_res.dico1; Exemplo no Kosmo: [cid:[email protected]] Com a view o problema persiste e não sei o que estou a fazer de errado, pois a view no postgres retorna os valores correctos. Cumprimentos, Catarina Em 09-11-2010 10:43, Duarte Carreira escreveu: Olá Catarina. Temos de separar o que se passa em cada nível de software. Para quem tem experiência com software esta separação talvez seja mais invisível. No ArcGIS fazemos joins no ArcMap. O que é o equivalente a fazer joins no QGIS, ou gvSIG ou outro desktop. Até aqui é igual. Já nos relates, com ArcGIS temos uma interface gráfica que nos permite ligar as 2 tabelas, quando há uma relação 1->muitos. Como esta interface gráfica não existe noutros programas, temos de recorrer à função standard suportada pelas bds para fazer este tipo de ligação. Ou seja, no mundo não esri, podemos usar o padrão SQL para criar na bd o equivalente ao relate, que é a view. Este conceito de View é universal a todas as bds. O que faltará fazer no Open Source será criar uma ferramenta que facilite a consulta de tabelas com relações 1->muitos, através de views ou até em memória (mas isto já seria "perigoso" quando as tabelas forem grandes - não sei como faz o ArcGIS). Aliás, penso que isto falta na maioria dos programas closed source. O único que conheço que resolve a coisa sem ter de usar SQL é o ArcGIS. Mas posso estar enganado - alguém pode dar aqui uma achega? Em que programas já viram isto ser resolvido com GUI? Bom, de qualquer forma, o grande potencial do PostGIS está no SQL, e enquanto não é feita no QGIS a mãe de todas as extensões para PostGIS ;) temos de aprender a usá-lo. Mas acho que é um conhecimento muitíssimo recompensador. Duarte -----Mensagem original----- De: Ana Catarina Ferreira Pinheiro [mailto:[email protected]] Enviada: terça-feira, 9 de Novembro de 2010 10:31 Para: [email protected]<mailto:[email protected]> Cc: Duarte Carreira Assunto: Re: [Portugal] Join e Relates Olá Duarte, Obrigada pela ajuda, já criei a view e estou a tentar abri-la, mas estou ainda com alguns problemas que vou tentar resolver. Entretanto digo os resultados. Mas já agora, com o Postgres não há outra solução para fazer a ligação às tabelas alfanuméricas, como fazíamos com as geodatabases do arcview??? Cumprimentos, Catarina Em 08-11-2010 16:46, Duarte Carreira escreveu: > Catarina, > > Que tal se dá com SQL? É que isto parece mesmo uma tarefa para o PostGIS. > Pode criar uma view que une a tabela de polígonos com a alfanumérica, > repetindo os polígonos para cada registo correspondente. > > Depois no QIGS (ou outro), pode fazer uma query à view com o id/nome do > polígono que quer e obtém todos os registos relacionados. (A inclusão das > geometrias na view é opcional.) [1] > > Não é exactamente o pretendido, mas é muito próximo?? > > Quanto ao ArcGIS, suponho que a tabela alfanumérica não está registada na > Geodatabase? Se for isso, basta registá-la (botão direito no ArcCatalog). > > Cumps, > Duarte > > [1] > http://postgis.refractions.net/pipermail/postgis-users/2008-April/019437.html > > > > > -----Mensagem original----- > Date: Mon, 08 Nov 2010 15:11:47 +0000 > From: Ana Catarina Ferreira > Pinheiro<[email protected]><mailto:[email protected]> > Subject: [Portugal] Join e Relates > To: [email protected]<mailto:[email protected]> > Message-ID:<[email protected]><mailto:[email protected]> > Content-Type: text/plain; charset="iso-8859-1" > > Boa tarde a todos, > > Antes de mais nada, gostaria de dar os parab?ns ? organiza??o do III > SASIG. Foi sem d?vida um espa?o de partilha e conhecimento do mundo dos > SIG OpenSource. > Para al?m do agradecimento que deixo aqui, venho pedir uma ajuda ;) > Tenho estado a fazer alguns testes, mas estou a ter dificuldades. Passo > a explicar: > > Tenho os meus dados geogr?ficos em Postgres/Postgis bem como as tabelas > alfanum?ricas, pretendo fazer um "relate" --> uma rela??o entre um tema > geogr?fico e uma tabela alfanum?rica, numa rela??o de 1 --> muitos. Com > o QuantumGis, apenas permite fazer join de tabelas dbf ou csv, que n?o ? > o caso. Com o GvSIG, faz o relate mas na tabela alfanum?rica e n?o na > geogr?fica. Com o Kosmo pensei que encontrava a solu??o, mas o que > acontece ? que ele faz o relate (com as rela??es), mas n?o coloca os > atributos correctos, isto ?, a um pol?gono est? associado 3 registos, > por exemplo, o que aparece na tabela s?o os 3 registos mas apenas com a > informa??o de um registo. Como podem ver no exemplo abaixo, os dados de > Santa Maria da Feira aparecem apenas para os censos 2001 e na tabela > alfanum?rica tem de 1981,1991 e 2001. > > > Experimentei tamb?m com o ArcView e aqui tamb?m n?o estou a conseguir > fazer nem o join nem o relate. Aparece-se o seguinte erro "Error getting > a list of OIDs from the table" > > Ser? que algu?m j? teve o mesmo problema e sabe como resolver??? > > Com os melhores cumprimentos, > > -- > Ana Catarina Pinheiro > Divis?o de Planeamento - Sector de Informa??o Geogr?fica > Munic?pio de Vale de Cambra > E-mail:[email protected]<mailto:E-mail:[email protected]> > http://www.cm-valedecambra.pt > Tel:(+351)256 420 510 > Fax:(+351)256 420 519 -- Ana Catarina Pinheiro Divisão de Planeamento - Sector de Informação Geográfica Município de Vale de Cambra E-mail:[email protected]<mailto:E-mail:[email protected]> http://www.cm-valedecambra.pt Tel:(+351)256 420 510 Fax:(+351)256 420 519 -- Ana Catarina Pinheiro Divisão de Planeamento - Sector de Informação Geográfica Município de Vale de Cambra E-mail:[email protected]<mailto:E-mail:[email protected]> http://www.cm-valedecambra.pt Tel:(+351)256 420 510 Fax:(+351)256 420 519
<<inline: image001.png>>
_______________________________________________ Portugal mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/portugal
