[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