Coordenadas Do CEP
Coordenadas Do CEP é um pacote do NPM, que, com base em um CEP informado é possível conseguir as informações sobre o mesmo (bairro, logradouro, estado e etc) e ainda sua latitude e longitude (não é 100% preciso, e as vezes se utiliza de aproximação para conseguir as coordenadas do CEP desejado).
Além disso consegue calcular a distancia entre dois CEPs (leve em consideração que ele apenas calcula a distancia direta ("em linha reta") entre as coordenadas, ou seja, o calculo é feito de forma totalmente diferente de um GPS, no qual são considerados as estradas/ruas/avenidas).
API's utilizadas:
Instalação
Use o NPM para instalar o Coordenadas Do CEP.
npm install coordenadas-do-cep
Novidades na versão 1.2.0
Agora todas as funções do Coordenadas do CEP utilizam promises nativas do javascript (ES6/ES2015), ou seja, não utilizam nenhuma biblioteca de promises externa como o bluebird ou promisify.
Além disso, não é utilizado mais nenhum pacote como o is_html ou request, assim, deixando a instalação mais rápida, além de possuir uma performance um pouco melhor.
Agora também é possível calcular a distancia entre dois CEPs, a distancia entre dois endereços e a distancia entre duas coordenadas.
Utilização
Função 'getByCep'
Nesta função é passado um parâmetro, o CEP (por exemplo "12345-678" ou "123456789" são incorretos, sendo o formato correto "12345678"), e então é retornado uma promise contendo o erro ou as informações do CEP juntamente com suas coordenadas.
Exemplo:
const CepCoords = ; async { try const info = await CepCoords; catch err //o parâmetro 'err' possui o código do erro http } // OU CepCoords
Parâmetro 'info':
cep: '06310-390' logradouro: 'Avenida Francisco Pignatari' complemento: '' bairro: 'Vila Gustavo Correia' localidade: 'Carapicuíba' uf: 'SP' unidade: '' ibge: '3510609' gia: '2550' lat: -235235 lon: -468407
Erros possíveis (parâmetro 'err'):
- 400
- 404
- 500
Função 'getInfoCep'
Nesta função é passado um parâmetro, o CEP (por exemplo "12345-678" ou "123456789" são incorretos, sendo o formato correto "12345678"), e então é retornado uma promise contendo o erro ou as informações do CEP.
Exemplo:
const CepCoords = ; async { try const info_cep = await CepCoords; catch err //o parâmetro 'err' possui o código do erro http } // OU CepCoords
Parâmetro 'info_cep':
cep: '06310-390' logradouro: 'Avenida Francisco Pignatari' complemento: '' bairro: 'Vila Gustavo Correia' localidade: 'Carapicuíba' uf: 'SP' unidade: '' ibge: '3510609' gia: '2550'
Erros possíveis (parâmetro 'err'):
- 400
- 500
Função 'getByEndereco'
Nesta função é passado um parâmetro, o endereço (não possui um padrão "correto", mas seguir um modelo de pesquisa semelhante a "UF, município bairro rua numero" gera bons resultados), e então é retornado uma promise contendo o erro ou as coordenadas do endereço.
Exemplo:
const CepCoords = ; async { try const coords = await CepCoords; catch err //o parâmetro 'err' possui o código do erro http } // OU CepCoords
Parâmetro 'coords':
lat: -235235 lon: -468407
Erros possíveis (parâmetro 'err'):
- 404
- 500
Função 'getDistEntreCeps'
Nesta função são passados dois parâmetro, os CEPs (por exemplo "12345-678" ou "123456789" são incorretos, sendo o formato correto "12345678"), e então é retornado uma promise contendo o erro ou a distancia (em quilômetros) entre os CEPs.
Exemplo:
const CepCoords = ; async { try const distancia = await CepCoords; catch err //o parâmetro 'err' possui o código do erro http } // OU CepCoords
Parâmetro 'distancia':
//numero598
Erros possíveis (parâmetro 'err'):
- 400
- 404
- 500
Função 'getDistEntreEnderecos'
Nesta função são passados dois parâmetros, os endereços (não possui um padrão "correto", mas seguir um modelo de pesquisa semelhante a "UF, município bairro rua numero" gera bons resultados), e então é retornado uma promise contendo o erro ou a distancia (em quilômetros) entre os endereços.
Exemplo:
const CepCoords = ; const endereco1 = "Sp, carapicuíba avenida francisco pignatari";const endereco2 = "Sp, jandira rua elton silva"; async { try const distancia = await CepCoords; catch err //o parâmetro 'err' possui o código do erro http } // OU CepCoords
Parâmetro 'distancia':
//numero598
Erros possíveis (parâmetro 'err'):
- 400
- 404
- 500
Função 'getDistancia'
Nesta função são passados dois parâmetros, as coordenadas (ambas em formato JSON) contendo a latitude (sempre como 'lat') e a longitude (sempre como 'lon'), e então é retornado uma promise contendo o erro ou a distancia (em quilômetros) entre as coordenadas.
Exemplo:
const CepCoords = ; const coord1 = lat: -235235 lon: -468407; const coord2 = lat: -235283 lon: -468991; const distancia_km = CepCoords;
Parâmetro 'distancia_km':
//numero598
Erros possíveis (parâmetro 'err'):
- 400
- 404
- 500
Tratamento de erros
Os erros (códigos HTTP) que podem ser retornados das promises do Coordenadas Do CEP são os seguintes
-
400 (Má requisição) - Este erro pode ocorrer devido ao CEP possuir algum caractere inválido na hora da buscar, ou o mesmo estando em um formato incorreto.
-
404 (Não encontrado) - Este erro ocorre pois provavelmente o CEP foi encontrado, porem não foi possível encontrar as coordenadas do mesmo (informações em como suprimir este erro em 'Aproximação' na seção sobre a função 'setOpcoes'), ou o endereço (caso esteja utilizando a função 'getByEndereco') não foi encontrado.
-
500 (Erro de servidor) - Este erro ocorre devido a alguma falha no server-side de algumas das API's utilizadas (devido queda de internet, o servidor fora do ar, etc).
Exemplo de tratamento do erro 404 (aplicável a todos os outros)
const CepCoords = ; async { try const info = await CepCoords; catch err iferr == 404 //... faça algo no caso de um erro 404 } // OU CepCoords
Função 'setOpcoes'
Esta função permite que você "customize" o JSON de retorno de algumas funções, ela não possui retorno, só necessita que seja passado um JSON com as opções.
Exemplo:
const CepCoords = ; CepCoords
Aproximação (Funciona apenas na função 'getByCep')
A aproximação vai basicamente permitir o fim do erro 404 da função 'getByCep'.
Ela irá funcionar da seguinte maneira:
- As coordenadas do endereço pertencente ao CEP não serão encontradas.
- Então, ele ira buscar as coordenadas de forma menos especifica, se utilizando apenas do estado e do município ao qual pertencem o CEP, assim retornando as coordenadas do centro do município do CEP.
A aproximação já vem setada como ativa por padrão, caso deseje desativar-la, coloque ela como false no 'setOpcoes'.
const CepCoords = ; CepCoords
Precisão (Funciona apenas nas funções 'getByCep' e 'getByEndereco')
Quando estamos falando de coordenadas, estamos falando também de números com muitas casas decimais, e quanto mais casas decimais a latitude e a longitude possuírem, mais precisas elas serão em determinar uma localização (por exemplo a latitude 14.9873 é mais precisa que a latitude 14.9).
Por padrão a precisão é de 4 casas decimais, que oferece uma exatidão de até 11 metros até a localização do CEP.
Os valorem que são permitidos vão de 0 até 7, segue tabela:
Casas | Exemplo | Precisão |
---|---|---|
0 | 1 | 111.3 km |
1 | 1.1 | 11.1 km |
2 | 1.01 | 1.1 km |
3 | 1.001 | 111.3 m |
4 (Padrão) | 1.0001 | 11.1 m |
5 | 1.00001 | 1.1 m |
6 | 1.000001 | 11.1 cm |
7 | 1.0000001 | 1.1 cm |
Por exemplo, para usar uma precisão de 2 dígitos ao invés dos 4 padrão, é só adicionar a mesma ao 'setOpcoes'.
const CepCoords = ; CepCoords
Numero de casas decimais da distância (Funciona apenas nas funções 'getDistEntreCeps', 'getDistEntreEnderecos' e 'getDistancia')
Este parametro basicamente permite mudar o numero de casas decimais que a distancia possuirá, o padrão é 2, mas você caso queira mudar coloque o valor desejado no 'setOpcoes'.
const CepCoords = ; CoordenadasDoCep;
Código Fonte
O código pode ser acessado pelo repositório oficial