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