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

Diego Moreira moreira.geo at gmail.com
Fri Aug 19 07:50:14 EDT 2011


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> 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>> 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/3090df29/attachment.html


More information about the Portugal mailing list