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

Pedro Costa pedrocostaarma at sapo.pt
Fri Aug 19 07:54:41 EDT 2011


Exactamente, neste caso estou a mudar a unha,  mas sabes alguma maneira 
mais rápida?

Obrigado



On 19-08-2011 12:50, Diego Moreira wrote:
>
> Provavelmente os mal atribuídos estao relacionados a ruas que tem 
> somente dois ou tres pontos.... da para resolver...
>
> Em 19/08/2011 06:47, "Pedro Costa" <pedrocostaarma  sapo.pt 
> <mailto:pedrocostaarma  sapo.pt>> escreveu:
> > 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>
> >> <mailto: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>
> >> <mailto: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> 
> <mailto: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> 
> <mailto: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> 
> <mailto: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> 
> <mailto: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/51c2cf3d/attachment-0001.html


More information about the Portugal mailing list