<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Resolvido, troquei os cifr&otilde;es por plicas<br>
    <br>
    <br>
    On 22-08-2011 11:50, Pedro Costa wrote:
    <blockquote cite="mid:4E523468.2080801@sapo.pt" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Pessoal algu&eacute;m pode ajudar-me a inserir a fun&ccedil;a&otilde; via shell? D&aacute;-me
      erro e penso que est&aacute; relacionado com os cifr&otilde;es $$<br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      On 22-08-2011 02:04, Diego Moreira wrote:
      <blockquote
cite="mid:CADUiXMKyp3QUago=2ur1BYJRMTS87xFJNP6rCTvJrRaHXHMb9A@mail.gmail.com"
        type="cite">Boa Noite Pedro,<br>
        <br>
        Como sugest&atilde;o do Pedro Ven&acirc;ncio, e tbm considero importante
        vamos dar fechamento ao post. Vou voltar a te responder aqui
        para caso alguem venha depois, ser&aacute; mais f&aacute;cil encontrar uma
        resposta.<br>
        <br>
        Segue a conversa referente a esse post, mas que estava em outro.<br>
        <br>
        <b><span style="color: rgb(255, 0, 0);">Em 20-08-2011 23:34,
            Diego Moreira escreveu: </span></b>
        <div style="color: rgb(255, 0, 0);"><b><span
              id="q_131ec599ffbb8185_1" class="h4"><br>
            </span></b></div>
        <b><span style="color: rgb(255, 0, 0);"> Op&aacute;, </span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> </span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> Ent&atilde;o </span><span
            style="color: rgb(255, 0, 0);" class="il">Pedro</span><span
            style="color: rgb(255, 0, 0);">,</span><br style="color:
            rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> </span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> Esse problema, no meu
            ponto de vista, pode ser resolvido de duas formas:</span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> </span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> 1 - Refatorar a tabela
            rua para que permita somente lineString. Uma Rua &eacute; composta
            por v&aacute;rios trechos, cada tupla da tabela seria um trecho.
            (Acho a mais interessante).</span><br style="color: rgb(255,
            0, 0);">
          <span style="color: rgb(255, 0, 0);"> </span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> 2 - "Encapsular" a
            fun&ccedil;&atilde;o </span><code style="color: rgb(255, 0, 0);">ST_Line_Interpolate_Point,


          </code><span style="color: rgb(255, 0, 0);">caso vc tenha uma
            MultiLine, ela calcula o ponto a X distancia para cada linha
            e retorna um multPoint.</span><br style="color: rgb(255, 0,
            0);">
          <span style="color: rgb(255, 0, 0);"> </span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> O que acha?</span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> </span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> </span><br
            style="color: rgb(255, 0, 0);" clear="all">
          <span style="color: rgb(255, 0, 0);"> Diego Moreira Carvalho </span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> </span><br
            style="color: rgb(255, 0, 0);">
          <br style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);">Caro Diego,</span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> </span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> Eu preferia optar pela
            segunda op&ccedil;&atilde;o uma vez que n&atilde;o me era conveniente modificar
            os trechos...Pode ajudar-me a fazer isso para testarmos?</span><br
            style="color: rgb(255, 0, 0);">
          <span style="color: rgb(255, 0, 0);"> </span></b>
        <pre cols="72"><b><span style="color: rgb(255, 0, 0);">Com os melhores cumprimentos,

</span><span style="color: rgb(255, 0, 0);" class="il">Pedro</span><span style="color: rgb(255, 0, 0);"> Costa
Ge&oacute;grafo
Especializado em Sistemas de Informa&ccedil;&atilde;o Geogr&aacute;fica e Ordenamento do Territ&oacute;rio</span></b>

</pre>
        <br>
        Respondendo:<br>
        <br>
        Seguem duas fun&ccedil;&otilde;es:<br>
        <br>
        <b style="color: rgb(0, 102, 0);">CREATE OR REPLACE FUNCTION
          smartUnion(geom1 geometry, geom2 geometry) RETURNS geometry AS
          $$<br>
          -- Autor: Diego Moreira Carvalho<br>
          -- E-mail: <a moz-do-not-send="true"
            href="mailto:moreira.geo@gmail.com">moreira.geo@gmail.com</a><br>
          -- Data: 20/08/2011<br>
          -- Descri&ccedil;&atilde;o: Esta fun&ccedil;&atilde;o retorna a uni&atilde;o das duas geometrias,
          caso alguma geometria seja inv&aacute;lida, retorna a que &eacute; v&aacute;lida.<br>
          DECLARE<br>
          &nbsp;&nbsp;&nbsp; retorno geometry;<br>
          BEGIN<br>
          &nbsp;&nbsp;&nbsp; IF ST_IsValid(geom1) AND ST_IsValid(geom2) THEN<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; retorno := ST_Union(geom1, geom2);<br>
          &nbsp;&nbsp;&nbsp; ELSIF ST_IsValid(geom1) THEN<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; retorno := geom1;<br>
          &nbsp;&nbsp;&nbsp; ELSIF ST_IsValid(geom2) THEN<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; retorno := geom2;<br>
          &nbsp;&nbsp;&nbsp; END IF;<br>
          &nbsp;&nbsp;&nbsp; RETURN retorno; <br>
          END;<br>
          $$ LANGUAGE plpgsql;<br>
          <br>
          <br>
          CREATE OR REPLACE FUNCTION
          Line_Interpolate_Point_Alter(a_linestring geometry, a_fraction
          float) RETURNS geometry AS $$<br>
          -- Autor: Diego Moreira Carvalho<br>
          -- E-mail: <a moz-do-not-send="true"
            href="mailto:moreira.geo@gmail.com">moreira.geo@gmail.com</a><br>
          -- Data: 21/08/2011<br>
          -- Descri&ccedil;&atilde;o: Esta fun&ccedil;&atilde;o &eacute; o encapsulamento da fun&ccedil;&atilde;o
          ST_Line_Interpolate_Point para aceitar multiLines<br>
          DECLARE<br>
          &nbsp;&nbsp;&nbsp; numGeometries integer;<br>
          &nbsp;&nbsp;&nbsp; it integer;<br>
          &nbsp;&nbsp;&nbsp; segment geometry;<br>
          &nbsp;&nbsp;&nbsp; point geometry;<br>
          &nbsp;&nbsp;&nbsp; retorno geometry;<br>
          BEGIN<br>
          &nbsp;&nbsp;&nbsp; numGeometries := ST_NumGeometries(a_linestring);&nbsp;&nbsp;&nbsp; <br>
          <br>
          &nbsp;&nbsp;&nbsp; IF&nbsp; numGeometries &gt; 0 THEN<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; numGeometries := numGeometries;<br>
          &nbsp;&nbsp;&nbsp; ELSE<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; numGeometries := 0;<br>
          &nbsp;&nbsp;&nbsp; END IF;<br>
          <br>
          &nbsp;&nbsp;&nbsp; IF numGeometries &gt; 0 THEN<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; it := 1;<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; WHILE it &lt; (numGeometries + 1) LOOP<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; segment := ST_GeometryN(a_linestring, it);<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; point := ST_Line_Interpolate_Point(segment,
          a_fraction);<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; retorno := smartUnion(point, retorno);<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; it := it +1;<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; END LOOP;<br>
          &nbsp;&nbsp;&nbsp; ELSE<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; point := ST_Line_Interpolate_Point(a_linestring,
          a_fraction);<br>
          &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; retorno := point;<br>
          &nbsp;&nbsp;&nbsp; END IF;<br>
          &nbsp;&nbsp;&nbsp; RETURN retorno; <br>
          END;<br>
          $$ LANGUAGE plpgsql;<br>
        </b><br>
        Vc deve usa-la assim:<br>
        <br>
        UPDATE passeios <br>
        SET rua =<br>
        (SELECT FID_ FROM ruas<br>
        ORDER BY ST_Distance(<b style="color: rgb(0, 102, 0);">
          Line_Interpolate_Point_Alter</b>(ruas.wkb_geometry, 0.5),
        passeios.wkb_geometry)) ASC LIMIT 1)<br>
        <br>
        Qualquer problema &eacute; s&oacute; falar;<br>
        <br>
        <br>
        Com os melhores cumprimentos,<br>
        <br clear="all">
        Diego Moreira Carvalho <br>
        <br>
        <br>
        <br>
        <div class="gmail_quote">Em 19 de agosto de 2011 12:53, Pedro
          Costa <span dir="ltr">&lt;<a moz-do-not-send="true"
              href="mailto:pedrocostaarma@sapo.pt">pedrocostaarma@sapo.pt</a>&gt;</span>
          escreveu:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex;">
            <div bgcolor="#FFFFFF" text="#000000"> Encontrei que podemos
              acrescentar geometryN para aceita multi-geometrias:<br>
              <br>
              UPDATE passeios <br>
              SET rua =<br>
              (SELECT FID_ FROM ruas<br>
              <br>
              <br>
              ORDER BY
              ST_Distance(ST_Line_Interpolate_Point(geometryN(ruas.wkb_geometry,
              0.5), passeios.wkb_geometry)) ASC LIMIT 1)<br>
              <br>
              <br>
              No entanto n&atilde;o reconhece a fun&ccedil;&atilde;o
              <div class="im"><br>
                <br>
                <br>
                <br>
                On 19-08-2011 13:28, Diego Moreira wrote: </div>
              <div>
                <div class="h5">
                  <blockquote type="cite">Resolveu?<br>
                    <br clear="all">
                    Diego Moreira Carvalho <br>
                    <br>
                    <br>
                    <br>
                    <div class="gmail_quote">Em 19 de agosto de 2011
                      09:13, Diego Moreira <span dir="ltr">&lt;<a
                          moz-do-not-send="true"
                          href="mailto:moreira.geo@gmail.com"
                          target="_blank">moreira.geo@gmail.com</a>&gt;</span>
                      escreveu:<br>
                      <blockquote class="gmail_quote" style="margin:0 0
                        0 .8ex;border-left:1px #ccc
                        solid;padding-left:1ex"> 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"
                          target="_blank">pedrocostaarma@sapo.pt</a>&gt;
                        escreveu:
                        <div>
                          <div> <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"
                              target="_blank">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"
                              target="_blank">moreira.geo@gmail.com</a><br>
                            &gt;&gt;&gt; &lt;mailto:<a
                              moz-do-not-send="true"
                              href="mailto:moreira.geo@gmail.com"
                              target="_blank">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"
                              target="_blank">pedrocostaarma@sapo.pt</a><br>
                            &gt;&gt;&gt; &lt;mailto:<a
                              moz-do-not-send="true"
                              href="mailto:pedrocostaarma@sapo.pt"
                              target="_blank">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"
                              target="_blank">pedrocostaarma@sapo.pt</a>
                            &lt;mailto:<a moz-do-not-send="true"
                              href="mailto:pedrocostaarma@sapo.pt"
                              target="_blank">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"
                              target="_blank">Portugal@lists.osgeo.org</a>
                            &lt;mailto:<a moz-do-not-send="true"
                              href="mailto:Portugal@lists.osgeo.org"
                              target="_blank">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" target="_blank">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"
                              target="_blank">Portugal@lists.osgeo.org</a>
                            &lt;mailto:<a moz-do-not-send="true"
                              href="mailto:Portugal@lists.osgeo.org"
                              target="_blank">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" target="_blank">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"
                              target="_blank">Portugal@lists.osgeo.org</a>
                            &lt;mailto:<a moz-do-not-send="true"
                              href="mailto:Portugal@lists.osgeo.org"
                              target="_blank">Portugal@lists.osgeo.org</a>&gt;<br>
                            &gt;&gt;&gt; <a moz-do-not-send="true"
                              href="http://lists.osgeo.org/mailman/listinfo/portugal"
                              target="_blank">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"
                              target="_blank">Portugal@lists.osgeo.org</a><br>
                            &gt;&gt;&gt; <a moz-do-not-send="true"
                              href="http://lists.osgeo.org/mailman/listinfo/portugal"
                              target="_blank">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"
                              target="_blank">Portugal@lists.osgeo.org</a><br>
                            &gt; <a moz-do-not-send="true"
                              href="http://lists.osgeo.org/mailman/listinfo/portugal"
                              target="_blank">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"
                              target="_blank">Portugal@lists.osgeo.org</a><br>
                            &gt; <a moz-do-not-send="true"
                              href="http://lists.osgeo.org/mailman/listinfo/portugal"
                              target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
                            &gt;<br>
                            &gt;<br>
                            <br>
                          </div>
                        </div>
                      </blockquote>
                    </div>
                    <br>
                    <br>
                    <fieldset></fieldset>
                    <br>
                    <pre>_______________________________________________
Portugal mailing list
<a moz-do-not-send="true" href="mailto:Portugal@lists.osgeo.org" target="_blank">Portugal@lists.osgeo.org</a>
<a moz-do-not-send="true" href="http://lists.osgeo.org/mailman/listinfo/portugal" target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a>
</pre>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            Portugal mailing list<br>
            <a moz-do-not-send="true"
              href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a><br>
            <a moz-do-not-send="true"
              href="http://lists.osgeo.org/mailman/listinfo/portugal"
              target="_blank">http://lists.osgeo.org/mailman/listinfo/portugal</a><br>
            <br>
          </blockquote>
        </div>
        <br>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
Portugal mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:Portugal@lists.osgeo.org">Portugal@lists.osgeo.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.osgeo.org/mailman/listinfo/portugal">http://lists.osgeo.org/mailman/listinfo/portugal</a>
</pre>
      </blockquote>
      <br>
    </blockquote>
    <br>
  </body>
</html>