[Portugal] expressão sql para preencher tabela com rua mais próxima

Pedro Costa pedrocostaarma at sapo.pt
Fri Aug 19 05:47:00 EDT 2011


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 <moreira.geo  gmail.com 
> <mailto:moreira.geo  gmail.com>> 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 <pedrocostaarma  sapo.pt
>     <mailto:pedrocostaarma  sapo.pt>> 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
>>         <pedrocostaarma  sapo.pt <mailto:pedrocostaarma  sapo.pt>>
>>         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
>>             Portugal  lists.osgeo.org <mailto:Portugal  lists.osgeo.org>
>>             http://lists.osgeo.org/mailman/listinfo/portugal
>>
>>
>>
>>
>>         _______________________________________________
>>         Portugal mailing list
>>         Portugal  lists.osgeo.org  <mailto:Portugal  lists.osgeo.org>
>>         http://lists.osgeo.org/mailman/listinfo/portugal
>
>
>         _______________________________________________
>         Portugal mailing list
>         Portugal  lists.osgeo.org <mailto:Portugal  lists.osgeo.org>
>         http://lists.osgeo.org/mailman/listinfo/portugal
>
>
>
>
>
> _______________________________________________
> Portugal mailing list
> Portugal  lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/portugal
-------------- próxima parte ----------
Um anexo em HTML foi limpo...
URL: http://lists.osgeo.org/pipermail/portugal/attachments/20110819/d44ee32e/attachment-0001.html


More information about the Portugal mailing list