<p>Provavelmente os mal atribuídos estao relacionados a ruas que tem somente dois ou tres pontos.... da para resolver...</p>
<div class="gmail_quote">Em 19/08/2011 06:47, "Pedro Costa" <<a href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>> escreveu:<br type="attribution">> Caro Diego,<br>> <br>> Funcionou... Obrigado pela ajuda.<br>
> Apesar de tudo alguns passeios ainda são mal atribuídos, mas melhorou <br>> bastante...<br>> <br>> Com os melhores cumprimentos,<br>> <br>> Pedro Costa<br>> <br>> <br>> <br>> <br>> <br>> Em 18-08-2011 20:04, Diego Moreira escreveu:<br>
>> Acho que vai dar certo, o pg numa divisão do tipo 3/2 retorna 1, <br>>> retornaria 1.5 se fosse 3.0/2...<br>>> Então... acho que vai funcionar.<br>>><br>>> Diego Moreira Carvalho<br>>><br>
>><br>>><br>>> Em 18 de agosto de 2011 16:00, Diego Moreira <<a href="mailto:moreira.geo@gmail.com">moreira.geo@gmail.com</a> <br>>> <mailto:<a href="mailto:moreira.geo@gmail.com">moreira.geo@gmail.com</a>>> escreveu:<br>
>><br>>> NumPoints(geometry)<br>>><br>>> Encontra e Retorna o número de pontos na primeira linha na<br>>> geometria. Retorna NULO se não há nenhuma linha na geometria.<br>
>><br>>> PointN(geometry,integer)<br>>><br>>> Retorna o enésimo ponto na primeira linha na geometria.<br>>> Retorna NULO se não há nenhuma linha na geometria.<br>>><br>
>> "UPDATE passeios SET rua =<br>>> (SELECT FID_ FROM eixos_rua ORDER BY<br>>> ST_Distance(PointN(eixos_rua.wkb_geometry,<br>>> NumPoints(eixos_rua.wkb_geometry)/2) , passeios.wkb_geometry) ASC<br>
>> LIMIT 1)"<br>>><br>>><br>>> Sera que isso dá certo? caso não, o problema é que a função PointN<br>>> espera receber um inteiro, mas o resultado da divisão por 2<br>>> retorna um numero tipo 3.5<br>
>><br>>> Diego Moreira Carvalho<br>>><br>>><br>>><br>>> Em 18 de agosto de 2011 15:49, Pedro Costa <<a href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a><br>>> <mailto:<a href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>>> escreveu:<br>
>><br>>> É exactamente por isso Diego. Mas sabes como faço para<br>>> determinar a contagem de pontos em sql?<br>>><br>>> Obrigado<br>>><br>>><br>>><br>
>><br>>> On 18-08-2011 19:40, Diego Moreira wrote:<br>>>> Boa tarde Pedrom<br>>>><br>>>> Acredito que tal problema ocorre porque as vezes a<br>>>> estremidade da rua adjacente a que deveria ser escolhida é<br>
>>> mais próxima. Acho que o problema pode ser resolvido da<br>>>> seguinte forma:<br>>>><br>>>> Pego o ponto n/2 do eixo da rua: se a rua tem dez pontos pego<br>
>>> o 5 ponto, e executo aquela mesma sql, só que com este ponto,<br>>>> e não com a geometria(eixos_rua.wkb_geometry).<br>>>><br>>>> Acho que deve resolver.<br>
>>><br>>>> Espero ter ajudado.<br>>>><br>>>> Diego Moreira Carvalho<br>>>><br>>>><br>>>><br>>>> Em 18 de agosto de 2011 11:39, Pedro Costa<br>
>>> <<a href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a> <mailto:<a href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>>><br>>>> escreveu:<br>>>><br>
>>> Pessoal é o seguinte, eu tenho duas tabelas no pgadmin<br>>>> (passeios e ruas), e quero que o campo rua dos passeios<br>>>> seja prenchido pela rua correspondente. Isto pode<br>
>>> fazer-se em função da distância, como o João Carvalho me<br>>>> ajudou:<br>>>><br>>>> "UPDATE passeios SET rua = (SELECT FID_ FROM eixos_rua<br>
>>> ORDER BY<br>>>> ST_Distance(eixos_rua.wkb_geometry,passeios.wkb_geometry)<br>>>> ASC LIMIT 1)"<br>>>><br>>>> No entanto em muitos casos a rua escolhida não é a<br>
>>> correspondente, esta query não é muito eficiente neste<br>>>> caso. Alguém sabe uma maneira diferente em que seja<br>>>> escolhida a rua que está mais próxima "em toda a sua<br>
>>> extensão"?<br>>>> Podem ver a imagem em anexo para perceberem melhor, as<br>>>> linhas verdes são os passeios e as vermelhas os eixos de<br>>>> rua. Alguém tem alguma ideia que possa ajudar?<br>
>>><br>>>> Obrigado<br>>>><br>>>> _______________________________________________<br>>>> Portugal mailing list<br>>>> <a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a> <mailto:<a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>><br>
>>> <a href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>>>><br>>>><br>>>><br>>>><br>>>> _______________________________________________<br>
>>> Portugal mailing list<br>>>> <a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a> <mailto:<a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>><br>
>>> <a href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>>><br>>><br>>> _______________________________________________<br>
>> Portugal mailing list<br>>> <a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a> <mailto:<a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>><br>>> <a href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
>><br>>><br>>><br>>><br>>><br>>> _______________________________________________<br>>> Portugal mailing list<br>>> <a href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a><br>
>> <a href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a><br></div>