[Portugal] QGIS ou PostGIS - pontos sobrepostos
Jorge Gustavo Rocha
jgr di.uminho.pt
Quinta-Feira, 31 de Outubro de 2013 - 10:43:13 PDT
Olá Pedro,
Em 31-10-2013 16:06, Pedro escreveu:
> Olá,
>
> Vou ter numa tabela de uma BD PostGIS um conjunto relativamente grande de
> dados (pontos e e poligonos) que vão todos cair na mesma coordenada (em
> princípio será no centroide dos concelhos).
> Imagino que serão na ordem das centenas de pontos e polígonos.
>
> O objectivo depois será corrigir a posição de cada um deles individualmente,
> colocando-os na coordenada correcta.
>
> Não sei bem se é possível fazer o que pretendo ou qual será a abordagem
> correcta.
> Se o devo/posso fazer a nível do QGIS ou se devo/posso fazer no PostGIS.
> Assim pergunto-vos:
>
> - No QGIS, conhecem alguma forma de seleccionar todos esses pontos e
> dispersá-los por forma a que deixem de estar sobrepostos ?
>
Parece-me que o mais fácil é recorreres a uma script PostgreSQL.
Fazes um agregate de todos os pontos que têm as mesmas coordenadas, e
contas a acorrência de repetições. Depois fazes um ciclo para esse
número de repetições, fazendo um update em que somas um delta a cada
ponto (em x e em y). O delta pode ser random()*100, e provavelmente
todos os pontos passam a ficar em posições distintas, dentro de uma bbox
de 100x100m.
Sugestão: Começa por fazer um siples update à tabela, com o delta que
vem do random()*100. Pode ser que só com uma única instrução consigas o
que queres.
Se calculares um delta a partir de uma fórmula (por exemplo, da
espiral), ficar com uma distribuição de pontos eventualmente mais
legível. Fiz um teste, que não sistematizei. Usei o raio a variar de 1
em 1m e o ângulo a variar de .1 em .1 radianos.
rs = 1:1:100;
thetas = .1:.1:10;
xs = x + rs .* cos(thetas);
ys = y + rs .* sin(thetas);
Anexo o resultado de 100 pontos dispersos em forma de espiral.
É melhor usares coordenadas métricas em que 1 é 1 metro :-) Se usares
coordeandas geográficas, cuidado com as unidades a fazer as contas.
> - No PostGIS estou a imaginar, poderia ter alguma função que adicione a
> todos os pontos, por exemplo, 1/2 metro em relação ao ponto anterior ? Se
> sim sabem qual a documentação que devo investigar?
>
http://www.postgresql.org/docs/9.3/static/plpgsql.html
> Obrigado,
> Pedro
>
Dá-lhe!
Abraço,
Jorge
>
>
>
>
> --
> View this message in context: http://osgeo-org.1560.x6.nabble.com/QGIS-ou-PostGIS-pontos-sobrepostos-tp5086866.html
> Sent from the OSGeo Portuguese Local Chapter mailing list archive at Nabble.com.
> _______________________________________________
> Portugal mailing list
> Portugal lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/portugal
>
--
Jorge Gustavo Rocha
Departamento de Informática
Universidade do Minho
4710-057 Braga
Tel: +351 253604480
Fax: +351 253604471
Móvel: +351 910333888
skype: nabocudnosor
-------------- próxima parte ----------
A non-text attachment was scrubbed...
Name: Captura de ecra de 2013-10-31 17:05:42.png
Type: image/png
Size: 98308 bytes
Desc: não disponível
URL: <http://lists.osgeo.org/pipermail/portugal/attachments/20131031/ab8db2ef/attachment-0001.png>
-------------- próxima parte ----------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3205 bytes
Desc: Assinatura cifrada S/MIME
URL: <http://lists.osgeo.org/pipermail/portugal/attachments/20131031/ab8db2ef/attachment-0001.bin>
More information about the Portugal
mailing list