<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Pessoal,&nbsp;&nbsp; <br>
    <br>
    Escrevo s&oacute; para apresentar resultados. Testei em v&aacute;rios shapes e
    funciona muito bem. Em casos com cerca de 2500 features s&oacute; &agrave; volta
    de cinco erros, em situa&ccedil;&otilde;es muito espec&iacute;ficos, algumas <i>esquesitisses</i>
    de ruas :-)... Mas com uma querie pr&eacute;-definida s&atilde;o logo detectados e
    corrigidos...<br>
    O script ficou porreiro por isso muito obrigado a todos os que
    contribu&iacute;ram, especialmente ao Jo&atilde;o Carvalho e ao Diego Moreira...
    Consigo poupar muito tempo de trabalho assim.<br>
    Queria acrescentar mais a op&ccedil;&atilde;o das paralelas mas acho que n&atilde;o vai
    dar. O essencial tamb&eacute;m est&aacute; feito.<br>
    Se algu&eacute;m precisar de fazer algo parecido e precisar de ajuda que
    diga.<br>
    <br>
    Abra&ccedil;o<br>
    <br>
    Obrigado<br>
    <pre class="moz-signature" cols="72">Com os melhores cumprimentos,



</pre>
    <br>
    Em 19-08-2011 13:13, Diego Moreira escreveu:
    <blockquote
cite="mid:CADUiXM+HxvyjoTHUu-F0UfixuvtXteJ77eJzpFFJA18S7QyGdw@mail.gmail.com"
      type="cite">O m&eacute;todo ST_Line_Interpolate_Point retorna um ponto ao
      longo de uma linha dado uma porcentagem do comprimento desta
      linha.... se passarmos sempre 0.5, teremos sempre o meio da
      linha... independente do numero de v&eacute;rtices que ela tem,<br>
      Agora eu acho que resolve<br>
      <br>
      <br>
      "UPDATE passeios SET rua =<br>
      (SELECT FID_ FROM eixos_rua ORDER BY ST_Distance(<b>ST_Line_Interpolate_Point(eixos_rua.wkb_geometry,
        0.5)</b> , passeios.wkb_geometry) ASC LIMIT 1)"<br>
      <br>
      <br>
      Diego Moreira Carvalho<br>
      <br>
      <br>
      <br>
      <br>
      Em 19 de agosto de 2011 08:54, Pedro Costa &lt;<a
        moz-do-not-send="true" href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>&gt;
      escreveu:<br>
      &gt; Exactamente, neste caso estou a mudar a unha,&nbsp; mas sabes
      alguma maneira mais<br>
      &gt; r&aacute;pida?<br>
      &gt;<br>
      &gt; Obrigado<br>
      &gt;<br>
      &gt;<br>
      &gt;<br>
      &gt; On 19-08-2011 12:50, Diego Moreira wrote:<br>
      &gt;<br>
      &gt; Provavelmente os mal atribu&iacute;dos estao relacionados a ruas que
      tem somente<br>
      &gt; dois ou tres pontos.... da para resolver...<br>
      &gt;<br>
      &gt; Em 19/08/2011 06:47, "Pedro Costa" &lt;<a
        moz-do-not-send="true" href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>&gt;
      escreveu:<br>
      &gt;&gt; Caro Diego,<br>
      &gt;&gt;<br>
      &gt;&gt; Funcionou... Obrigado pela ajuda.<br>
      &gt;&gt; Apesar de tudo alguns passeios ainda s&atilde;o mal atribu&iacute;dos,
      mas melhorou<br>
      &gt;&gt; bastante...<br>
      &gt;&gt;<br>
      &gt;&gt; Com os melhores cumprimentos,<br>
      &gt;&gt;<br>
      &gt;&gt; Pedro Costa<br>
      &gt;&gt;<br>
      &gt;&gt;<br>
      &gt;&gt;<br>
      &gt;&gt;<br>
      &gt;&gt;<br>
      &gt;&gt; Em 18-08-2011 20:04, Diego Moreira escreveu:<br>
      &gt;&gt;&gt; Acho que vai dar certo, o pg numa divis&atilde;o do tipo 3/2
      retorna 1,<br>
      &gt;&gt;&gt; retornaria 1.5 se fosse 3.0/2...<br>
      &gt;&gt;&gt; Ent&atilde;o... acho que vai funcionar.<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 16:00, Diego Moreira &lt;<a
        moz-do-not-send="true" href="mailto:moreira.geo@gmail.com">moreira.geo@gmail.com</a><br>
      &gt;&gt;&gt; &lt;mailto:<a moz-do-not-send="true"
        href="mailto:moreira.geo@gmail.com">moreira.geo@gmail.com</a>&gt;&gt;
      escreveu:<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; NumPoints(geometry)<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; Encontra e Retorna o n&uacute;mero de pontos na primeira
      linha na<br>
      &gt;&gt;&gt; geometria. Retorna NULO se n&atilde;o h&aacute; nenhuma linha na
      geometria.<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; PointN(geometry,integer)<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; Retorna o en&eacute;simo ponto na primeira linha na
      geometria.<br>
      &gt;&gt;&gt; Retorna NULO se n&atilde;o h&aacute; nenhuma linha na geometria.<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; "UPDATE passeios SET rua =<br>
      &gt;&gt;&gt; (SELECT FID_ FROM eixos_rua ORDER BY<br>
      &gt;&gt;&gt; ST_Distance(PointN(eixos_rua.wkb_geometry,<br>
      &gt;&gt;&gt; NumPoints(eixos_rua.wkb_geometry)/2) ,
      passeios.wkb_geometry) ASC<br>
      &gt;&gt;&gt; LIMIT 1)"<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; Sera que isso d&aacute; certo? caso n&atilde;o, o problema &eacute; que a
      fun&ccedil;&atilde;o PointN<br>
      &gt;&gt;&gt; espera receber um inteiro, mas o resultado da divis&atilde;o
      por 2<br>
      &gt;&gt;&gt; retorna um numero tipo 3.5<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 15:49, Pedro Costa &lt;<a
        moz-do-not-send="true" href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a><br>
      &gt;&gt;&gt; &lt;mailto:<a moz-do-not-send="true"
        href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>&gt;&gt;
      escreveu:<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; &Eacute; exactamente por isso Diego. Mas sabes como fa&ccedil;o
      para<br>
      &gt;&gt;&gt; determinar a contagem de pontos em sql?<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; Obrigado<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt;<br>
      &gt;&gt;&gt; On 18-08-2011 19:40, Diego Moreira wrote:<br>
      &gt;&gt;&gt;&gt; Boa tarde Pedrom<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; Acredito que tal problema ocorre porque as vezes
      a<br>
      &gt;&gt;&gt;&gt; estremidade da rua adjacente a que deveria ser
      escolhida &eacute;<br>
      &gt;&gt;&gt;&gt; mais pr&oacute;xima. Acho que o problema pode ser
      resolvido da<br>
      &gt;&gt;&gt;&gt; seguinte forma:<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; Pego o ponto n/2 do eixo da rua: se a rua tem dez
      pontos pego<br>
      &gt;&gt;&gt;&gt; o 5 ponto, e executo aquela mesma sql, s&oacute; que com
      este ponto,<br>
      &gt;&gt;&gt;&gt; e n&atilde;o com a geometria(eixos_rua.wkb_geometry).<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; Acho que deve resolver.<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; Espero ter ajudado.<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; Diego Moreira Carvalho<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; Em 18 de agosto de 2011 11:39, Pedro Costa<br>
      &gt;&gt;&gt;&gt; &lt;<a moz-do-not-send="true"
        href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>
      &lt;mailto:<a moz-do-not-send="true"
        href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>&gt;&gt;<br>
      &gt;&gt;&gt;&gt; escreveu:<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; Pessoal &eacute; o seguinte, eu tenho duas tabelas no
      pgadmin<br>
      &gt;&gt;&gt;&gt; (passeios e ruas), e quero que o campo rua dos
      passeios<br>
      &gt;&gt;&gt;&gt; seja prenchido pela rua correspondente. Isto pode<br>
      &gt;&gt;&gt;&gt; fazer-se em fun&ccedil;&atilde;o da dist&acirc;ncia, como o Jo&atilde;o
      Carvalho me<br>
      &gt;&gt;&gt;&gt; ajudou:<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; "UPDATE passeios SET rua = (SELECT FID_ FROM
      eixos_rua<br>
      &gt;&gt;&gt;&gt; ORDER BY<br>
      &gt;&gt;&gt;&gt;
      ST_Distance(eixos_rua.wkb_geometry,passeios.wkb_geometry)<br>
      &gt;&gt;&gt;&gt; ASC LIMIT 1)"<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; No entanto em muitos casos a rua escolhida n&atilde;o &eacute;
      a<br>
      &gt;&gt;&gt;&gt; correspondente, esta query n&atilde;o &eacute; muito eficiente
      neste<br>
      &gt;&gt;&gt;&gt; caso. Algu&eacute;m sabe uma maneira diferente em que
      seja<br>
      &gt;&gt;&gt;&gt; escolhida a rua que est&aacute; mais pr&oacute;xima "em toda a
      sua<br>
      &gt;&gt;&gt;&gt; extens&atilde;o"?<br>
      &gt;&gt;&gt;&gt; Podem ver a imagem em anexo para perceberem
      melhor, as<br>
      &gt;&gt;&gt;&gt; linhas verdes s&atilde;o os passeios e as vermelhas os
      eixos de<br>
      &gt;&gt;&gt;&gt; rua. Algu&eacute;m tem alguma ideia que possa ajudar?<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; Obrigado<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; _______________________________________________<br>
      &gt;&gt;&gt;&gt; Portugal mailing list<br>
      &gt;&gt;&gt;&gt; <a moz-do-not-send="true"
        href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>
      &lt;mailto:<a moz-do-not-send="true"
        href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>&gt;<br>
      &gt;&gt;&gt;&gt; <a moz-do-not-send="true"
        href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt;<br>
      &gt;&gt;&gt;&gt; _______________________________________________<br>
      &gt;&gt;&gt;&gt; Portugal mailing list<br>
      &gt;&gt;&gt;&gt; <a moz-do-not-send="true"
        href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>
      &lt;mailto:<a moz-do-not-send="true"
        href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>&gt;<br>
      &gt;&gt;&gt;&gt; <a moz-do-not-send="true"
        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; Portugal mailing list<br>
      &gt;&gt;&gt; <a moz-do-not-send="true"
        href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>
      &lt;mailto:<a moz-do-not-send="true"
        href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>&gt;<br>
      &gt;&gt;&gt; <a moz-do-not-send="true"
        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; _______________________________________________<br>
      &gt;&gt;&gt; Portugal mailing list<br>
      &gt;&gt;&gt; <a moz-do-not-send="true"
        href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a><br>
      &gt;&gt;&gt; <a moz-do-not-send="true"
        href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
      &gt;<br>
      &gt;<br>
      &gt; _______________________________________________<br>
      &gt; Portugal mailing list<br>
      &gt; <a moz-do-not-send="true"
        href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a><br>
      &gt; <a moz-do-not-send="true"
        href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
      &gt;<br>
      &gt;<br>
      &gt; _______________________________________________<br>
      &gt; Portugal mailing list<br>
      &gt; <a moz-do-not-send="true"
        href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a><br>
      &gt; <a moz-do-not-send="true"
        href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
      &gt;<br>
      &gt;<br>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Portugal mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a>
</pre>
    </blockquote>
  </body>
</html>