Re: [Portugal] expressão sql para preencher tabela com rua mais próxima
Diego Moreira
moreira.geo at gmail.com
Thu Aug 18 15:00:14 EDT 2011
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>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>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
>> http://lists.osgeo.org/mailman/listinfo/portugal
>>
>>
>
>
> _______________________________________________
> Portugal mailing listPortugal lists.osgeo.orghttp://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/20110818/858a8b8d/attachment.html
More information about the Portugal
mailing list