Versão 3.10 será a nova LTR
Tem inicio a sequência de testes da versão 3.10 do Sistema de Informações Geográficas QGIS, a futura nova versão de Lançamento a Longo Prazo (Long Term Release ou LTR). Conforme observamos no Calendário de Lançamentos do QGIS, no dia 21/02/2020 teremos a substituição da versão 3.4 pela versão 3.10 do sistema. Vale a pena começar os testes desta nova versão e descobrir as novidades que estarão à sua disposição no ano seguinte.
Conheça a API HERE para Geocodificação
Com base na dúvida de um rapaz que faz parte da Lista QGIS Brasil nos Grupos do Google, eu tomei conhecimento acerca do processo de geocodificação de endereços por meio da API da HERE. O algoritmo funciona da seguinte forma: Você prepara a sua lista de endereços e executa a geocodiicação dentro do próprio QGIS por meio das credenciais obtidas a partir de uma conta FREEMIUM adquirida no portal HERE. Esta técnica permite geocodificar mensalmente milhares endereços sem custo algum. Talvez esta seja uma das alternativas mais interessantes para aplicar o processo de geocodificação a partir de uma lista de endereços de tamanho moderado.
Tutorial 1: Obtendo as Credenciais HERE
A primeira etapa consiste em realizar um cadastro para obter a chave do serviço HERE. Visite o site dos desenvolvedores e faça o seu cadastro:
Forneça os dados e prossiga com o processo de cadastro da sua conta da mesma forma conforme é exigido por outros portais.
Prossiga com o processo de cadastro informando o seu número telefônico e aguarde a criação do seu projeto HERE:
Certifique-se de validar a sua conta de e-mail. Este é um procedimento padrão em mais de 95% dos cadastros na Web:
Seu projeto será criado. Para obter as credenciais para geocodificação de endereços dentro do QGIS 3.10, clique no grupo REST & XYZ HUB API/CLI:
Pressione o botão Generate App ID and App Code e aguarde a criação das suas credenciais de acesso. Se tudo correu bem até aqui, você receberá códigos semelhantes a esta imagem:
E aqui terminamos a primeira etapa. Anote seus códigos num local seguro porque vamos utilizá-los nas etapas seguintes.
Tutorial 2: Instalação da ferramenta e leitura dos dados
Na segunda etapa, siga estes passos:
Abra o QGIS 3 (o plugin não funciona na versão 2.18) e clique no menu Complementos – Gerenciar e Instalar Complementos (1).
Na categoria Tudo (2), digite hqgis na caixa de pesquisa (3) e marque o plugin para instalação (4). Em seguida, pressione o botão Instalar Complemento (5).
O complemento será instalado com sucesso. Para iniciar o processo, você vai precisar de uma lista de endereços concatenados. Eu tenho esta lista de dezoito autoescolas do município de São Paulo. Creio que vale a pena você realizar o teste com ela até para entender como deve ser o padrão de formatação de endereços capaz de garantir um processo de geocodificação bem sucedido.
O QGIS não opera com a leitura de um arquivo XLSX do Microsoft Excel. Faça uma cópia da lista como CSV Separado Por Vírgulas.
Agora, vamos importar esta lista. Eu sempre oriento a prática de utilizar bases cartográficas de referência em todos os projetos. Não será diferente aqui. Para ter certeza sobre a posição dos endereços que serão geocodificados, primeiro, adicione um limite geográfico de Estados ou Municípios do Brasil. Aproveitando a oportunidade, vamos trazer de volta a nostálgica Barra de Gerenciamento das Camadas das versões anteriores do QGIS. O limite dos estados e o painel clássico podem ser observados na ilustração abaixo:
Para trazer o painel clássico de volta, clique com o botão direito do mouse sobre qualquer área cinza da barra de menus e marque o item Gerenciar Camadas.
Os bons tempos voltaram! Para importar a lista no formato CSV, clique no “V” de Adicionar Camada Vetorial:
Na janela seguinte, localize o seu arquivo CSV com os endereços. Evite essas barbaridades de usuário iniciante no que diz respeito à pastas e arquivos com espaços e acentuação. Evite também os caminhos longos. Essas práticas evitam problemas. Para ler o CSV, clique na reticências (1) primeiro e, na sequência, pressione o botão Adicionar (2). Feche a janela.
Tutorial 3: Geocodificação no QGIS com o Plugin HQGIS
Já temos a lista importada para o programa e vamos iniciar o processo de geocodificação. É importante notar que a nossa técnica leva em consideração a coluna da tabela que contém os endereços concatenados. Sendo assim, siga a mesma lógica para que o processo possa lograr êxito. Se você é novo aqui e não sabe consultar sua tabela, verifique as imagens abaixo:
Para ter acesso à ferramenta, clique no menu Web – Hqgis – Access the HERE API. Também é possível clicar sobre o ícone do plugin HQGIS:
Vá para a última guia e faça o cadastro das credenciais que você recebeu na primeira etapa deste artigo. Save suas credenciais e prossiga para a etapa seguinte.
Retorne para a primeira guia e aponte para a camada que possui os endereços que serão geocodificados. É importante apontar para o campo da tabela que possui essa informação. Finalmente, pressione o botão Geocode Multiple Adress para dar inicio ao processo.
No canto superior da janela, você pode acompanhar o processo pela barra de progresso praticamente imperceptível. Recomendo não fazer nada até que o plugin finalize o seu trabalho.
No final, todos os endereços serão geocodificados! As autoescolas serão posicionadas em São Paulo, o que confere a precisão da API HERE. Um lembrete: estes pontos são temporários, ou seja, você deve utilizar os recursos do QGIS para salvar essa camada como arquivo Shapefile ou Geopackage:
Que tal realizar o controle de qualidade? Será mesmo que essa geocodificação é tão boa quanto os processos de geocodificação pelo Google Maps e da geocodificação pelo Google Planilhas? Você deve analisar o resultado minuciosamente e tirar as suas próprias conclusões. Na minha opinião, essa capacidade de geocodificar 250 mil endereços mensalmente a partir de um conta Freemium vale o investimento do seu tempo!
Registre a sua opinião nos comentários!
Informações
Instrutor GIS é o site de consultoria do Geógrafo Jorge Santos.
Jorge Santos é Instrutor de Geotecnologias, Produtor de Conteúdo Geo, Técnico em Geoprocessamento, Analista em Geoprocessamento e Designer Gráfico com mais de dez anos de experiência.
Contatos
- WhatsApp: (61) 99616-5665
- Skype: jorgepsantos2002
- E-mail: jorgepsantos@instrutorgis.com.br
Jorge, muito legal o tutorial..já estou usando nos meus trabalho. me salvastes…eu testei aquele “ferramentas militares” já vistes? Faz um tutorial comparando os tipos de plugins de gecodificação.
parabéns e obrigada por ser tão parceiro nessa mundo da geotecnologia.
Fico feliz por saber que a ferramenta está funcionando, Tatiana! Ferramentas Militares, eh? Nunca ouvi falar! Seu pensamento está sincronizado com as ideias de um amigo, que pediu um tutorial de geocodificação comparativo, inclusive com ferramentas pagas. Acho que vocês combinaram, hein? Sugestão anotada!
Um forte abraço!
Jorge Santos
Instrutor de Geotecnologias
https://www.instrutorgis.com.br
jorgepsantos@instrutorgis.com.br
WhatsApp: (61) 99616-5665
Skype: jorgepsantos2002
LinkedIn: https://www.linkedin.com/in/jorgepsantos
Twitter: http://twitter.com/jpsantos2002
Gostei demais desse tutorial, estava a mais de uma semana usando outros aplicativos absoletos. Parabens.
Olá Jorge,
Na nova versão do QGIS 3.10.4 (salvo engano), não é mais dessa forma.
Agora só pede apenas um codigo API. Terias um tutorial mais atualizado? Grato!
Este tutorial não é muito antigo, mas posso verificar essa alteração, pode deixar.
Um forte abraço!
Jorge Santos
Instrutor de Geotecnologias
https://www.instrutorgis.com.br
jorgepsantos@instrutorgis.com.br
WhatsApp: (61) 99616-5665
Skype: jorgepsantos2002
LinkedIn: https://www.linkedin.com/in/jorgepsantos
Twitter: http://twitter.com/jpsantos2002
Olá! Depois de geocodificar, como faz pra criar as colunas de latitude e longitude?
Salvou meu amigo !
Realmente na versão 3.10 só pede o API key.
Mas funcionou direitinho. Aliás, foi o único método de Geocodificação que funcionou com meus endereços !
Muitíssimo obrigado !!
Agora percebi aqui que as demais colunas da tabela não são importadas para para o shapefile criado. Ou seja, você localiza o endereço mas não consegue associá-lo aos demais atributos.
Você teria alguma sugestão para resolver isso Jorge ?
Jorge, muito obriga pelo tutorial, esta nos ajudando muito, porem tenho algumas duvidas e gostaria de uma ajuda para esclarecer. Os resultados após a geocodificação significam o que ?
– relevance
– qu_country
– qu_city
– qu_street
– qu_number
– matchtype
Outra pergunta é qual o GRAU de Confiabilidade da ferramenta? Testei 10 endereços e apenas 5 foram localizados
E como o endereço tem que estar descrito? Primeiro o nome da rua, numero, bairro, cep, cidade????
Aguardo retorno Obrigada
Olá Paula, tudo bem? Este plugin faz uso da API HERE. Assim sendo, se você verificar este link no site do desenvolvedor, haverão respostas para esses campos que a ferramenta pondera durante a geocodificação.
Sobre o grau de confiabilidade ou mesmo precisão do processo de Geocodificação, é preciso avaliar o seu dado. Eu sempre utilizo o mesmo modelo de planilha formatada em todos os tutoriais, inclusive eu fiz uma videoaula sobre a Geocodificação com o Google Planilhas, que não faz 250 mil endereços de uma única vez mas é a que possui maior grau de acerto, pois é a mesma Geocodificação do Google Maps. Vale a pena explorar e fazer os seus testes.
Atenciosamente,
Jorge Santos
Instrutor de Geotecnologias
https://www.instrutorgis.com.br
jorgepsantos@instrutorgis.com.br
WhatsApp: (61) 99616-5665
Skype: jorgepsantos2002
LinkedIn: https://www.linkedin.com/in/jorgepsantos
Twitter: http://twitter.com/jpsantos2002
Interessante demais.
Contudo, você tem conhecimento de algum complemento ou maneira de extrair endereços a partir de um shape de pontos?
Olá Jorge, tenho uma dúvida, consigo obter a latitude e longitude no QGIS só com o CEP? Se tiver alguma orientação, agradeço!
Olá! Poderia me ajudar??
Segui o tuturial passo a passo com a versão 3.22 do QGIS e não funcionou. A visualização do acompanhamento na parte superior diz “Looping through 18 records…” e não avança. Também aparece uma mensagem dizendo: “Erro Python : Um erro ocorreu enquanto executava o código Python: Consulte o registro de mensagens (Erro Python) para mais detalhes.”. Consultando a guia de Erro Phyton, diz o seguinte:
2022-06-15T10:39:19 WARNING Traceback (most recent call last):
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connection.py”, line 159, in _new_conn
conn = connection.create_connection(
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\util\connection.py”, line 84, in create_connection
raise err
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\util\connection.py”, line 74, in create_connection
sock.connect(sa)
TimeoutError: [WinError 10060] Uma tentativa de conexão falhou porque o componente conectado não respondeu
corretamente após um período de tempo ou a conexão estabelecida falhou
porque o host conectado não respondeu
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connectionpool.py”, line 670, in urlopen
httplib_response = self._make_request(
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connectionpool.py”, line 381, in _make_request
self._validate_conn(conn)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connectionpool.py”, line 978, in _validate_conn
conn.connect()
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connection.py”, line 309, in connect
conn = self._new_conn()
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connection.py”, line 171, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [WinError 10060] Uma tentativa de conexão falhou porque o componente conectado não respondeu
corretamente após um período de tempo ou a conexão estabelecida falhou
porque o host conectado não respondeu
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\adapters.py”, line 439, in send
resp = conn.urlopen(
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connectionpool.py”, line 726, in urlopen
retries = retries.increment(
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\util\retry.py”, line 446, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=’geocoder.ls.hereapi.com’, port=443): Max retries exceeded with url: /search/6.2/geocode.json?apiKey=org535091354&searchtext=Av.%20Pedro%20Bueno,%20555,%20Parque%20Jabaquara,%20S%C3%A3o%20Paulo,%20SP,%2004342-010%20-%20Brasil? (Caused by NewConnectionError(‘: Failed to establish a new connection: [WinError 10060] Uma tentativa de conexão falhou porque o componente conectado não respondeu\r\ncorretamente após um período de tempo ou a conexão estabelecida falhou\r\nporque o host conectado não respondeu’))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\Users/schwartz/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Hqgis\hqgis.py”, line 563, in batchGeocodeField
r = requests.get(url)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\api.py”, line 76, in get
return request(‘get’, url, params=params, **kwargs)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\api.py”, line 61, in request
return session.request(method=method, url=url, **kwargs)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\sessions.py”, line 530, in request
resp = self.send(prep, **send_kwargs)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\sessions.py”, line 643, in send
r = adapter.send(request, **kwargs)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\adapters.py”, line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host=’geocoder.ls.hereapi.com’, port=443): Max retries exceeded with url: /search/6.2/geocode.json?apiKey=org535091354&searchtext=Av.%20Pedro%20Bueno,%20555,%20Parque%20Jabaquara,%20S%C3%A3o%20Paulo,%20SP,%2004342-010%20-%20Brasil? (Caused by NewConnectionError(‘: Failed to establish a new connection: [WinError 10060] Uma tentativa de conexão falhou porque o componente conectado não respondeu\r\ncorretamente após um período de tempo ou a conexão estabelecida falhou\r\nporque o host conectado não respondeu’))
2022-06-15T10:50:40 WARNING Traceback (most recent call last):
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connection.py”, line 159, in _new_conn
conn = connection.create_connection(
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\util\connection.py”, line 84, in create_connection
raise err
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\util\connection.py”, line 74, in create_connection
sock.connect(sa)
TimeoutError: [WinError 10060] Uma tentativa de conexão falhou porque o componente conectado não respondeu
corretamente após um período de tempo ou a conexão estabelecida falhou
porque o host conectado não respondeu
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connectionpool.py”, line 670, in urlopen
httplib_response = self._make_request(
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connectionpool.py”, line 381, in _make_request
self._validate_conn(conn)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connectionpool.py”, line 978, in _validate_conn
conn.connect()
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connection.py”, line 309, in connect
conn = self._new_conn()
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connection.py”, line 171, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: : Failed to establish a new connection: [WinError 10060] Uma tentativa de conexão falhou porque o componente conectado não respondeu
corretamente após um período de tempo ou a conexão estabelecida falhou
porque o host conectado não respondeu
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\adapters.py”, line 439, in send
resp = conn.urlopen(
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\connectionpool.py”, line 726, in urlopen
retries = retries.increment(
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\urllib3\util\retry.py”, line 446, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=’geocoder.ls.hereapi.com’, port=443): Max retries exceeded with url: /search/6.2/geocode.json?apiKey=org535091354&searchtext=Av.%20Pedro%20Bueno,%20555,%20Parque%20Jabaquara,%20S%C3%A3o%20Paulo,%20SP,%2004342-010%20-%20Brasil? (Caused by NewConnectionError(‘: Failed to establish a new connection: [WinError 10060] Uma tentativa de conexão falhou porque o componente conectado não respondeu\r\ncorretamente após um período de tempo ou a conexão estabelecida falhou\r\nporque o host conectado não respondeu’))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\Users/schwartz/AppData/Roaming/QGIS/QGIS3\profiles\default/python/plugins\Hqgis\hqgis.py”, line 563, in batchGeocodeField
r = requests.get(url)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\api.py”, line 76, in get
return request(‘get’, url, params=params, **kwargs)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\api.py”, line 61, in request
return session.request(method=method, url=url, **kwargs)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\sessions.py”, line 530, in request
resp = self.send(prep, **send_kwargs)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\sessions.py”, line 643, in send
r = adapter.send(request, **kwargs)
File “C:\PROGRA~1\QGIS32~1.6\apps\Python39\lib\site-packages\requests\adapters.py”, line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host=’geocoder.ls.hereapi.com’, port=443): Max retries exceeded with url: /search/6.2/geocode.json?apiKey=org535091354&searchtext=Av.%20Pedro%20Bueno,%20555,%20Parque%20Jabaquara,%20S%C3%A3o%20Paulo,%20SP,%2004342-010%20-%20Brasil? (Caused by NewConnectionError(‘: Failed to establish a new connection: [WinError 10060] Uma tentativa de conexão falhou porque o componente conectado não respondeu\r\ncorretamente após um período de tempo ou a conexão estabelecida falhou\r\nporque o host conectado não respondeu’))