API Geocoder e Geocoder Reverso (versão 2.0.8)

Serviço de consulta a endereços da Prefeitura de Belo Horizonte (PBH).

O que é a API Geocoder e Geocoder Reverso

Um serviço de endereços no formato de web service REST que possibilita consultas a endereços na base da PBH, tendo como resposta um objeto JSON, que contém, entre outros atributos, a coordenada geográfica do endereço pesquisado.

Em todos as buscas são utilizadas as bases oficiais de endereço, bairro e logradouro. O sistema de referência das coordenadas é o oficial de Belo Horizonte, o SIRGAS 2000.

O serviço possibilita ao usuário as seguintes consultas:

  • Consulta de endereço textual

  • Consulta de endereço por coordenada

  • Lista de logradouros e bairros

Endereço textual

Chamada ao serviço

A chamada ao serviço geolocalização tem o seguinte formato:

Parâmetros de busca:

  • É obrigatório informar pelo menos um dos parâmetros: logradouro, bairro ou CEP.
Parâmetro Descrição Notas
logradouro nome do logradouro
  • Informar o nome do logradouro textualmente
  • exemplo: afonso pena
bairro nome do bairro
  • Informar o nome do bairro textualmente
  • exemplo: buritis
cep número do cep
  • Informar o número do CEP, sem hífen
  • exemplo: 31230000
tipologradouro descrição ou sigla do tipo do logradouro
  • Pode informar o tipo de logradouro com sigla ou descrição
  • exemplo: avenida ou ave
numero número do imóvel, com ou sem letra
  • Pode informar o número com ou sem letras
  • exemplo: 516 ou 516A
classificacao busca do logradouro pelo nome oficial ou popular
  • considerar o nome oficial ou popular ou ambos na busca
  • Valores: oficial, popular, completo.
  • A busca de ambos ocasiona perda da qualidade do resultado.
  • Caso não seja informado o parâmetro é feita a busca pelo nome oficial
limite limitar o número de resultados.
  • Caso seja informado valor valor 0 (zero), são retornados todos os resultados.
  • Valor default: 10

Tipos de resposta

Resposta com endereço encontrado:



							

Resposta com endereço não encontrado:


							

Exemplos de consultas

1) Consulta por logradouro:

Nesse tipo de consulta, é fornecido o parâmetro de entrada logradouro, que deve conter o nome do logradouro que se pretende consultar. O serviço retorna uma coordenada geográfica referente ao(s) logradouro(s) encontrado(s). Caso o numero não seja informado será retornada o endereco com o menor numero de logradouro existente. Ex: Para o logradouro Rua Minas Novas são encontrados 38 endereços variando entre o numero 14 e 274. Portanto o serviço retornará o endereço cujo o numero é 14.

Chamada ao serviço:

Resultado obtido:



							
  • Correção na busca de logradouro


  • 3) Consulta por logradouro oficial e popular:

    Nesse tipo de consulta, é fornecido como parâmetro de entrada o nome do logradouro e a busca é feita considerando os nomes oficiais e populares. Para tal, deve ser informado um parâmetro que indique que a busca deve ser completa ( classificacao=completo ). O serviço retorna o nome oficial e a coordenada geográfica referente ao(s) logradouro(s) encontrado(s). É importante destacar que a flexibilidade da busca integrando os dois tipos de logradouros implica em possível perda de qualidade do resultado.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    4) Consulta por codigo do logradouro e número

    Nesse tipo de consulta, são fornecidos os parâmetros de entrada: o código e o número do logradouro.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							


    5) Consulta por número do logradouro e número

    Nesse tipo de consulta, são fornecidos os parâmetros de entrada logradouro e numero, que devem conter, respectivamente, o nome do logradouro e o número do imóvel que se pretende consultar.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    6) Consulta por nome do logradouro e número com letra

    Nesse tipo de consulta, são fornecidos os parâmetros de entrada logradouro e número, que devem conter, respectivamente, o nome do logradouro e o número do imóvel com a letra que se pretende consultar.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    7) Consulta por nome do logradouro, número e bairro

    Nesse tipo de consulta são fornecidos os parâmetros de entrada logradouro, numero e bairro, que devem conter, respectivamente, o nome do logradouro, o número do imóvel e o nome do bairro. O serviço retorna a coordenada geográfica referente ao endereço encontrado.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    8) Consulta por nome do logradouro, número com letra e bairro

    Nesse tipo de consulta são fornecidos os parâmetros de entrada logradouro, numero e bairro, que devem conter, respectivamente, o nome do logradouro, o número do imóvel com a letra e o nome do bairro. O serviço retorna a coordenada geográfica referente ao endereço encontrado.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    9) Consulta por bairro

    Nesse tipo de consulta, é informado o parâmetro de entrada bairro, que deve conter o nome do bairro que se pretende consultar. O serviço retorna a coordenada geográfica referente ao primeiro endereço encontrado no bairro.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    10) Consulta por CEP

    Nesse tipo de consulta é fornecido o parâmetros de entrada cep, que deve conter o número do CEP. O serviço retorna a coordenada geográfica pertencente ao primeiro numero de logradouro encontrado a partir do CEP informado. Quando buscamos apenas por cep, poderiam ser retornados múltiplos endereços que pertençam aquele cep, porém o serviço retorna apenas endereço que possua o menor numero de logradouro. Ex: Para o Cep 30310-090 são encontrados 38 endereços na Rua Minas Novas variando entre o numero 14 e 274. Portanto nosso serviço retornará o endereço cujo o numero é 14.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    11) Consulta por CEP e número

    Nesse tipo de consulta são fornecidos os parâmetros de entrada cep e numero, que devem conter, respectivamente, o número do CEP e o número do imóvel. O serviço retorna a coordenada geográfica referente ao endereço encontrado.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    12) Consulta por CEP e número com letra

    Nesse tipo de consulta são fornecidos os parâmetros de entrada cep e numero, que devem conter, respectivamente, o número do CEP e o número do imóvel com letra. O serviço retorna a coordenada geográfica referente ao endereço encontrado.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    13) Consulta de endereço por id

    Nessa consulta é possível buscar as informações de um endereço, dado seu id.

    Exemplo de chamada ao serviço:

    Resultado obtido:

    
    
    							

    Endereço por coordenada


    Chamada ao serviço

    A chamada ao serviço geolocalização tem o seguinte formato:

    Parâmetros de busca:

    • É obrigatório informar pelo menos uma coordenada.
    Parâmetro Descrição Notas
    ponto coordenada no formato wkt
    • Informar a coordenada em formato WKT com sistema de referência SIRGAS 2000
    • exemplo: POINT(607108.49522605 7797536.4531855)
    distancia distância máxima do endereço, em metros
    • Informar o raio máximo de busca para localizar o endereço mais próximo
    • Valor default: 10
    • exemplo: 15

    Tipos de resposta

    Resposta com endereço encontrado:

    
    
    							

    Resposta com endereço não encontrado:

    
    							

    Teste a API

    Ponto em formato wkt:

    Distância:

    Exemplos de consultas

    1) Consulta por única coordenada:

    Este serviço recebe dois parâmetros, ponto e distancia(opcional). O serviço retorna o endereço referente a coordenada e distância indicadas. Caso não encontre endereço dentro do raio informado, ele retornará um JSON com id vazio.

    Chamada ao serviço:

    Exemplo de retorno para consultas com apenas um ponto:

    
    
    							

    2) Consulta com múltiplas coordenadas:

    Este serviço recebe como parâmetros múltiplos pontos e a distância (opcional). Deve-se separar cada ponto por vírgula.

    O serviço retorna os endereços referente às coordenadas pesquisadas, seguindo a mesma ordenação dos pontos informados.

    Exemplo de coordenadas:

    POINT(612905.595953109 7796291.76966232),POINT(611376.555220056 7796659.80606211),POINT(608283.395804183 7799770.55397166)

    Exemplo de consulta:

    Resultado obtido:

    
    
    							

    Lista logradouros e bairros

    Serviço de listagem que retorna apenas os nomes de logradouros e bairros, tornando a busca mais rápida. Indicada para uso em autocomplete. Esta busca por padrão traz também logradouros inativos e afetados(que estão somente em planta, mas não existem fisicamente). Para buscar apenas logradouros ativos e não afetados passe o parâmetro FILTRADO=true. Esta busca também aceita como filtro o tipo de logradouro, para utiliza-lo passe o parametro TIPO.

    Exemplos

    Lista todos os tipos de logradouros existentes

    Exemplo

    Busca de endereço por número de logradouro aproximado

    Serviço de busca que retorna um numero de logradouro aproximado caso não seja encontrado um numero de logradouro exato em nossa base. Ou seja, a busca retorna o número de logradouro mais proximo ao endereco informado e NÃO necessariamente aquele com a menor euclidiana.

    Chamada ao serviço

    A chamada ao serviço de busca aproximada tem o seguinte formato:

    Parâmetros de busca:

    • É obrigatório informar os seguintes parâmetros: nome do logradouro, numero do logradouro e aproximado
    Parâmetro Descrição Notas
    logradouro nome do logradouro
    • Informar o nome do logradouro textualmente
    • exemplo: afonso pena
    tipologradouro descrição ou sigla do tipo do logradouro
    • Pode informar o tipo de logradouro com sigla ou descrição
    • exemplo: avenida ou ave
    numero número do imóvel, com ou sem letra
    • Pode informar o número com ou sem letras
    • exemplo: 516 ou 516A
    aproximado busca de número de logradouro será aproximada ou não
    • Deve-se informar verdadeiro ou falso
    • exemplo: true ou false
    paridade Define se serão buscado somente os numeros de logradouro no mesmo lado da rua.
    • Deve-se informar verdadeiro ou falso. Se buscamos o numero 2 com paridade verdadeiro, será retornado o numero de logradouro par mais proximo de 2 encontrado em nossa base. Caso o numero a ser buscado é 3, será retornado o numero de logradouro ímpar mais proximo ao 3 encontrado em nossa base de dados
    • exemplo: Se se busca Avenida Afonso Pena número 2, o número de logradouro par mais proximo de 2 encontrado em nossa base é o 254, portanto o servico retornará Avenida Afonso Pena, 254 .
    limiteAproximacao limite maximo de numeros de logradouro para se obter um endereco aproximado
    • Devemos informar um valor inteiro
    • exemplo: Se buscamos Avenida Afonso Pena número 100 com limite de aproximação 100, será buscado o endereco mais proximo de 100 encontrado entre o intervalo de logradouro 0 e 200.

    Tipos de resposta

    Resposta com endereço encontrado:

    
    
    							

    Resposta com endereço não encontrado:

    
    							

    Exemplos de consultas

    1) Busca por número aproximado

    Nesse tipo de consulta,são fornecidos tipo de logradouro, nome do logradouro, numero do logradouro e o parametro aproximado como verdadeiro.

    Ex: Se buscamos Avenida Afonso Pena. O primeiro numero de logradouro encontrado na base é o 254. Portanto caso informemos qualquer valor entre 1 e 254 será retornado Avenida Afonso Pena, 254.

    Chamada ao serviço:

    Resultado obtido:

    
    							
    							

    2) Busca por número aproximado com paridade

    Nesse tipo de consulta, são fornecidos tipo de logradouro, nome do logradouro, numero do logradouro, aproximado e paridade como verdadeiros. Paridade significa dizer que queremos buscar o endereço aproximado no mesmo lado da rua informado.

    Ex1: Se buscamos Avenida Afonso Pena, 1. O primeiro numero de logradouro ímpar mais proximo de 1 encontrado na base é o 255. Portanto será retornado Avenida Afonso Pena, 255.

    Ex2: Se buscamos Avenida Afonso Pena, 2. O primeiro numero de logradouro par mais proximo de 2 encontrado na base é o 254. Portanto será retornado Avenida Afonso Pena, 254.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    3) Busca por número aproximado com limite de aproximação

    Nesse tipo de consulta,são fornecidos tipo de logradouro, nome do logradouro, numero do logradouro, o parametro aproximado como verdadeiro e o limite de aproximação. Este limite deve ser um valor inteiro maior que zero.

    Ex1: Se buscamos Avenida Afonso Pena, 155, com limite de aproximação igual a 100. Será buscado o logradouro mais proximo do numero 155 na base encontrado entre Avenida Afonso Pena, 55 e Avenida Afonso Pena, 255

    Ex2: Se informamos Avenida Afonso Pena, 101, com limite de aproximação igual a 100. Não será encontrado endereço algum , já que não existem nenhum endereço em nossa base entre Avenida Afonso Pena, 1 e Avenida Afonso Pena, 201.

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    4) Busca por número aproximado com limite de aproximação e paridade

    Nesse tipo de consulta, são fornecidos tipo de logradouro, nome do logradouro, numero do logradouro,limite de aproximação, aproximado e paridade como verdadeiros. Ou seja, queremos buscar um endereço no mesmo lado da rua até um determinado limite

    Ex1: Se buscamos Avenida Afonso Pena, 1, com limite de aproximação igual a 300 e paridade verdadeira. Será buscado o primeiro endereço ímpar mais proximo de 1 encontrado na base em Avenida Afonso Pena entre o limite de logradouro 1 e 300

    Chamada ao serviço:

    Resultado obtido:

    
    
    							

    Respostas e códigos de erro

    Respostas: HTTP Status

    A API diferencia o status HTTP da resposta de acordo com a situação do retorno. Para simplificar o tratamento das respostas, os possíveis códigos de status retornados foram limitados para as opções abaixo:

    Código Status HTTP Situação
    200 OK A requisição foi tratada com sucesso.
    400 Bad Request A requisição enviada apresenta alguma característica inválida.
    500 Internal Server Error A requisição está correta mas ocorreu um erro interno no sistema.

    Mensagens de erro

    Além do status HTTP, a resposta inclui uma mensagem genérica para o usuário e uma mensagem detalhada para o desenvolvedor, facilitando a identificação do erro.

    Mensagem
    Parâmetros de requisição inválidos.
    Erro ao obter conexão com banco de dados.

    Exemplos de respostas

    1) Sucesso com resultado

    HTTP status: 200 OK

    
    
    							

    2) Sucesso sem resultados

    HTTP status: 200 OK

    
    
    
    							

    3) Erro na requisição

    HTTP status: 400 BAD REQUEST

    
    
    
    							

    4) Erro no servidor

    HTTP status: 500 INTERNAL SERVER ERROR

    
    
    						

    Atualizações da API

    Alterações na versão 2.0.8

    • Adicionada a busca de logradouro por id .
    • Busca por endereço aproximada agora retorna também o idterritoriofiscalizacao .

    Alterações na versão 2.0.7

    • Correção do caso de uso de geocoder reverso.
    • Implementação de novo caso de uso: busca de endereço por código e número do logradouro.

    Alterações na versão 2.0.6

    • Correção na API CadWeb

    Alterações na versão 2.0.5

    • Adicionada a documentacao da busca de tipos de logradouros.
    • Lista de logradouro para autocomplete agora pode ser filtrada por tipo de logradouro e logradouro ativos.

    Alterações na versão 2.0.4

    • Busca de endereço também retorna o id do territorio de fiscalização
    • Busca de endereço por numero de logradouro aproximado implementada

    Alterações na versão 2.0.3

    • Correção na busca de CEP

    Alterações na versão 2.0.2

    • Correção na busca de logradouro quando o menor endereço do logradouro é inativo.

    Alterações na versão 2.0.1

    • Correção na busca informando coordenadas.

    Alterações na versão 2.0.0

    • Versão SIRGAS 2000.

    Alterações na versão 1.6.1

    • Atualização da base de dados.

    Alterações na versão 1.6.0

    • Apenas versão ESCOLAS.

    Alterações na versão 1.5.1

    • Apenas versão ESCOLAS

    Alterações na versão 1.5

    • Alterações internas do serviço de busca por coordenadas para compatibilização com a base SIRGAS 2000
    • Adição do serviço de listar tipos de logradouro
    • Adição do parâmetro tipo de logradouro na busca de endereços

    Alterações na versão 1.3.7

    • Alterações internas do serviço para compatibilização com a base SIRGAS 2000.

    Alterações na versão 1.3.6

    • Adição de campo "codRegional" com o código da Regional na resposta.

    Alterações na versão 1.3.5

    • O serviço de busca foi atualizado nos casos de busca por CEP e Bairro para manter o retorno consistente (sempre o mesmo ponto).

    Alterações na versão 1.3.4

    • O serviço de busca de escolas por jurisdição infantil foi alterado para consultar a tabela de UMEIs.

    Versões anteriores