<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Oi Éder, <br>
    <br>
    Eu havia ignorado essa opção "output=more"... Não cheguei a ver
    quantos níveis de acurácia há agora. Você sabe: Na antiga eram oito:<br>
       c("País", "U. F.", "Município", "Cidade", "CEP", <br>
                   "Rua", "Cruzamento", "Endereço")<br>
    <br>
    Quando você fala em considerar apenas os primeiros dígitos, é
    possível ver que isso diminui a acurácia apenas notando que dos 9183
    CEPs georeferenciados temos 6414 coordenadas únicas. Não sei o que
    essas quase três mil repetições são...<br>
    <br>
    Tentando a sua sugestão (usar primeiros 5 digitos), obtemos apenas
    dois endereços com os 30 primeiros CEPs, enquanto que com os 8
    dígitos temos 16 coordenadas diferentes. Mas isso é porque esses
    CEPs estão ordenados, e os CEPs iniciando 80010 estão no início e
    vários deles apontam para a central de distribuição dos correios. Ou
    seja, quanto aos dados públicos do DATASUS, ao nível de CEP, não dá
    para fazer mais que isso... Os dados completos, com nome de
    logradouro e número não são públicos, são mais informativos.<br>
    <br>
    Falando sobre o georeferenciamento de todos os endereços de
    Curitiba, os meio milhão de endereços são referentes a cada
    domicílio. Como muitos estão em condomínios, pode-se conseguir uma
    drástica redução. Além disso, uma coisa que pode-se levar em conta é
    que os números das ruas de Curitiba são e metros a partir do início
    da rua e se é a direita ou esquerda da rua. O número 310 indica um
    endereço 310 metros a partir do incício da rua à direita enquanto
    que 311 indica à esquerda. Geralmente a ruas "nascem" do centro e
    vão para os extremos. Um algoritmo pensando nessa estrutura pode
    ajudar a diminuir também o número de consultas.<br>
    <br>
    Elias<br>
    <br>
    <div class="moz-cite-prefix">On 04/05/15 21:53, Éder Comunello
      wrote:<br>
    </div>
    <blockquote
cite="mid:CABmC8gn=oqXdeVN2HmVEW_Z7LKMi8-W0+OCman=VDEaaEetTCA@mail.gmail.com"
      type="cite">
      <div>Elias, boa tarde!</div>
      <div><br>
      </div>
      <div>Fiz uns testes com o georreferenciamento por cep, usando
        ggmap::geocode(). Na verdade, dá pra fazer uma avaliação da
        acurácia pelos campos <font face="monospace, monospace">type </font>e
        <font face="monospace, monospace">loctype </font>retornados
         quando se utiliza a opção "<font face="monospace, monospace">output=more</font>".
        Pelo que pude entender, endereços "precisos/acurados" são
        retornados com a indicação <font face="monospace, monospace">"street_address</font><span
          style="font-family:monospace,monospace">"</span><font
          face="arial, helvetica, sans-serif"> em </font><font
          face="monospace, monospace">type </font><font face="arial,
          helvetica, sans-serif">e as demais formas são aproximações. No
          entanto, códigos "</font><span
          style="font-family:monospace,monospace">postal_code" </span><font
          face="arial, helvetica, sans-serif">são melhores que  </font><span
          style="font-family:monospace,monospace">"</span><span
          style="font-family:monospace,monospace">postal_code_prefix".</span></div>
      <div><br>
      </div>
      <div><font face="monospace, monospace">### <code r></font></div>
      <div><font face="monospace, monospace">require("ggmap")</font></div>
      <div><font face="monospace, monospace"># geocodeQueryCheck()</font></div>
      <div><font face="monospace, monospace">adr1 <- c('Rua Toshinobo
          Katayama, 178, Dourados, MS, Brazil, 79806-030', ### endereço
          completo</font></div>
      <div><font face="monospace, monospace">          'Rua Toshinobo
          Katayama, 171, Dourados, MS', ### endereço completo</font></div>
      <div><font face="monospace, monospace">          'Dourados, MS,
          79806-029',                   ### não cadastrado, prefixo
          válido</font></div>
      <div><font face="monospace, monospace">          'Dourados, MS,
          79899-333',                   ### cep inexistente</font></div>
      <div><font face="monospace, monospace">          'Dourados, MS,
          79806',                       ### apenas prefixo</font></div>
      <div><font face="monospace, monospace">          'Dourados, MS,
          79806030',                    ### cep correto</font></div>
      <div><font face="monospace, monospace">          'Dourados, MS,
          79823460',                    ### cep correto</font></div>
      <div><font face="monospace, monospace">          'Dourados, MS,
          79804970')                    ### cep correto, zona rural</font></div>
      <div><font face="monospace, monospace"><br>
        </font></div>
      <div><font face="monospace, monospace">res1 <- geocode(adr1,
          output="more")</font></div>
      <div><font face="monospace, monospace">res1[c(1:4, 10)]</font></div>
      <div><font face="monospace, monospace">#         lon       lat    
                    type            loctype postal_code</font></div>
      <div><font face="monospace, monospace"># 1 -54.80372 -22.23004    
          street_address            rooftop        <NA></font></div>
      <div><font face="monospace, monospace"># 2 -54.80460 -22.22413    
          street_address range_interpolated        <NA></font></div>
      <div><font face="monospace, monospace"># 3 -54.80027 -22.22395
          postal_code_prefix        approximate        <NA></font></div>
      <div><font face="monospace, monospace"># 4 -54.79138 -22.22623    
             bus_station        approximate        <NA></font></div>
      <div><font face="monospace, monospace"># 5 -54.80027 -22.22395
          postal_code_prefix        approximate        <NA></font></div>
      <div><font face="monospace, monospace"># 6 -54.80409 -22.22820    
             postal_code        approximate   79806-030</font></div>
      <div><font face="monospace, monospace"># 7 -54.83732 -22.21741    
             postal_code        approximate   79823-460</font></div>
      <div><font face="monospace, monospace"># 8 -54.80988 -22.21471
          postal_code_prefix        approximate        <NA></font></div>
      <div><span style="font-family:monospace,monospace">###
          </code></span><br>
      </div>
      <div><br>
      </div>
      <div>Testando apenas os primeiros 30 ceps do arquivo que você
        disponibilizou...</div>
      <div><br>
      </div>
      <div><font face="monospace, monospace">### <code r><br>
        </font></div>
      <div><font face="monospace, monospace">url0 <- "<a
            moz-do-not-send="true"
href="http://leg.ufpr.br/%7Eelias/tmp/cep_curitiba_cwb_georef_longlat.txt">http://leg.ufpr.br/~elias/tmp/cep_curitiba_cwb_georef_longlat.txt</a>"</font></div>
      <div><font face="monospace, monospace">tmp0 <- read.table(url0,
          head=T, nrows=30)</font></div>
      <div><font face="monospace, monospace">adr2 <-
          paste0("Curitiba, PR, Brazil, ", tmp0[,1])</font></div>
      <div><font face="monospace, monospace"><br>
        </font></div>
      <div><font face="monospace, monospace">res2 <- geocode(adr2,
          output="more")</font></div>
      <div><font face="monospace, monospace">cbind(tmp0,
          res2[c(1:4,10)])</font></div>
      <div><font face="monospace, monospace">table(res2$type)</font></div>
      <div><font face="monospace, monospace">#             route
          postal_code_prefix        postal_code </font></div>
      <div><font face="monospace, monospace">#                  2      
                    14                 14 </font></div>
      <div><font face="monospace, monospace">### </code></font><br>
      </div>
      <div><br>
      </div>
      <div>Nesse pequeno teste, 16 consultas retornaram resultados muito
        imprecisos (<span style="font-family:monospace,monospace">route </span>, <span
          style="font-family:monospace,monospace">postal_code_prefix) </span><font
          face="arial, helvetica, sans-serif">e os demais são poucos
          precisos (</font><span style="font-family:monospace,monospace">postal_code)</span><span
          style="font-family:monospace,monospace">.</span></div>
      <div><font face="arial, helvetica, sans-serif"><br>
        </font></div>
      <div>Desse modo, acredito que não há grande vantagem em consultar
        todos os ceps e o número de consultas poderia ser diminuído
        consideravelmente se eles fossem 'generalizados" . A opção mais
        radical seria fazer a consulta pelos prefixos (primeiros 5
        dígitos) e outras mais brandas seriam algo do tipo:</div>
      <div><br>
      </div>
      <div>
        <div><font face="monospace, monospace">df      <-
            read.table(url0, head=T, nrows=1000)</font></div>
        <div><font face="monospace, monospace">df$cep2 <-
            round(df$cep/100)*100</font></div>
        <div><font face="monospace, monospace">un <- unique(df$cep2);
            length(un) # 135</font></div>
      </div>
      <div><font face="monospace, monospace"><br>
        </font></div>
      <div><font face="arial, helvetica, sans-serif">Nesse caso seriam
          135 consultas ao invés das 1000 iniciais, o que facilitaria
          bem a tarefa. Logicamente, haveria uma perda ainda maior de
          precisão/acurácia. Resta saber se  a perda é
          tolerável/aceitável.</font></div>
      <div><font face="arial, helvetica, sans-serif"><br>
        </font></div>
      <div><font face="arial, helvetica, sans-serif">A descrição dos
          códigos está em <</font><font face="monospace, monospace"><a
            moz-do-not-send="true"
            href="https://developers.google.com/maps/documentation/geocoding/?csw=1">https://developers.google.com/maps/documentation/geocoding/?csw=1</a></font><font
          face="arial, helvetica, sans-serif">>.</font></div>
      <div class="gmail_extra"><br clear="all">
      </div>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
In God we trust, all others bring data.
 – William Edwards Deming (1900-1993)</pre>
  </body>
</html>