Caro Diego,
Funcionou... Obrigado pela ajuda.
Apesar de tudo alguns passeios ainda são mal atribuídos, mas melhorou
bastante...
Com os melhores cumprimentos,
Pedro Costa
Em 18-08-2011 20:04, Diego Moreira escreveu:
Acho que vai dar certo, o pg numa divisão do tipo 3/2 retorna 1,
retornaria 1.5 se fosse 3.0/2...
Então... acho que vai funcionar.
Diego Moreira Carvalho
Em 18 de agosto de 2011 16:00, Diego Moreira <[email protected]
<mailto:[email protected]>> escreveu:
NumPoints(geometry)
Encontra e Retorna o número de pontos na primeira linha na
geometria. Retorna NULO se não há nenhuma linha na geometria.
PointN(geometry,integer)
Retorna o enésimo ponto na primeira linha na geometria.
Retorna NULO se não há nenhuma linha na geometria.
"UPDATE passeios SET rua =
(SELECT FID_ FROM eixos_rua ORDER BY
ST_Distance(PointN(eixos_rua.wkb_geometry,
NumPoints(eixos_rua.wkb_geometry)/2) , passeios.wkb_geometry) ASC
LIMIT 1)"
Sera que isso dá certo? caso não, o problema é que a função PointN
espera receber um inteiro, mas o resultado da divisão por 2
retorna um numero tipo 3.5
Diego Moreira Carvalho
Em 18 de agosto de 2011 15:49, Pedro Costa <[email protected]
<mailto:[email protected]>> escreveu:
É exactamente por isso Diego. Mas sabes como faço para
determinar a contagem de pontos em sql?
Obrigado
On 18-08-2011 19:40, Diego Moreira wrote:
Boa tarde Pedrom
Acredito que tal problema ocorre porque as vezes a
estremidade da rua adjacente a que deveria ser escolhida é
mais próxima. Acho que o problema pode ser resolvido da
seguinte forma:
Pego o ponto n/2 do eixo da rua: se a rua tem dez pontos pego
o 5 ponto, e executo aquela mesma sql, só que com este ponto,
e não com a geometria(eixos_rua.wkb_geometry).
Acho que deve resolver.
Espero ter ajudado.
Diego Moreira Carvalho
Em 18 de agosto de 2011 11:39, Pedro Costa
<[email protected] <mailto:[email protected]>>
escreveu:
Pessoal é o seguinte, eu tenho duas tabelas no pgadmin
(passeios e ruas), e quero que o campo rua dos passeios
seja prenchido pela rua correspondente. Isto pode
fazer-se em função da distância, como o João Carvalho me
ajudou:
"UPDATE passeios SET rua = (SELECT FID_ FROM eixos_rua
ORDER BY
ST_Distance(eixos_rua.wkb_geometry,passeios.wkb_geometry)
ASC LIMIT 1)"
No entanto em muitos casos a rua escolhida não é a
correspondente, esta query não é muito eficiente neste
caso. Alguém sabe uma maneira diferente em que seja
escolhida a rua que está mais próxima "em toda a sua
extensão"?
Podem ver a imagem em anexo para perceberem melhor, as
linhas verdes são os passeios e as vermelhas os eixos de
rua. Alguém tem alguma ideia que possa ajudar?
Obrigado
_______________________________________________
Portugal mailing list
[email protected] <mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/portugal
_______________________________________________
Portugal mailing list
[email protected] <mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/portugal
_______________________________________________
Portugal mailing list
[email protected] <mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/portugal
_______________________________________________
Portugal mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/portugal
_______________________________________________
Portugal mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/portugal