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 <[email protected] <mailto:[email protected]>> 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 <[email protected]
    <mailto:[email protected]>> 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
        <[email protected] <mailto:[email protected]>>
        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
            [email protected] <mailto:[email protected]>
            http://lists.osgeo.org/mailman/listinfo/portugal




        _______________________________________________
        Portugal mailing list
        [email protected]  <mailto:[email protected]>
        http://lists.osgeo.org/mailman/listinfo/portugal


        _______________________________________________
        Portugal mailing list
        [email protected] <mailto:[email protected]>
        http://lists.osgeo.org/mailman/listinfo/portugal





_______________________________________________
Portugal mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/portugal
_______________________________________________
Portugal mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/portugal

Responder a