Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal eu gostaria de saber se teria como e se sim, como fazer para pegar lat e lng quando fazer a busca do endereco pelo cep,
Tentei buscar uns exemplos de como poderia ser feito, porem não obtive resultado que precisava.
o código a baixo ele funciona sem problema, porem so precisaria pegar esta LAT e LNG
//Buscando endereco plo CEP
function limpa_formulário_cep() {
//Limpa valores do formulário de cep.
document.getElementById('rua').value=("");
document.getElementById('bairro').value=("");
document.getElementById('cidade').value=("");
document.getElementById('uf').value=("");
}
function meu_callback(conteudo) {
if (!("erro" in conteudo)) {
//Atualiza os campos com os valores.
document.getElementById('rua').value=(conteudo.logradouro);
document.getElementById('bairro').value=(conteudo.bairro);
document.getElementById('cidade').value=(conteudo.localidade);
document.getElementById('uf').value=(conteudo.uf);
} //end if.
else {
//CEP não Encontrado.
limpa_formulário_cep();
alert("CEP não encontrado.");
}
}
function pesquisacep(valor) {
//Nova variável "cep" somente com dígitos.
var cep = valor.replace(/\D/g, '');
//Verifica se campo cep possui valor informado.
if (cep != "") {
//Expressão regular para validar o CEP.
var validacep = /^[0-9]{8}$/;
//Valida o formato do CEP.
if(validacep.test(cep)) {
document.getElementById('cep').value = cep.substring(0,5)
+"-"
+cep.substring(5);
//Preenche os campos com "..." enquanto consulta webservice.
document.getElementById('rua').value="...";
document.getElementById('bairro').value="...";
document.getElementById('cidade').value="...";
document.getElementById('uf').value="...";
//Cria um elemento javascript.
var script = document.createElement('script');
//Sincroniza com o callback.
script.src = 'https://viacep.com.br/ws/'+ cep + '/json/?callback=meu_callback';
//Insere script no documento e carrega o conteúdo.
document.body.appendChild(script);
} //end if.
else {
//cep é inválido.
limpa_formulário_cep();
alert("Formato de CEP inválido.");
}
} //end if.
else {
//cep sem valor, limpa formulário.
limpa_formulário_cep();
}
};
</script>
<?php // Map($Width, $Height, $StringNome, $StringEndereco, $StringCidade)
$LAT = '37.86926';
$LNG = '-122.254811';
?>
<script>
// gmap for street view
panorama = GMaps.createPanorama({
el: '#MapCanvasStreet',
lat : <?= $LAT; ?>,
lng : <?= $LNG; ?>,
});
</script>
Desde já fico grato!!Ola amigo
Então ja fiz api do Google map mais nao resultou em nada, por isso fui para script cep
Olá @Jack Oliveira, tudo bem?
Pelo que vi, você está usando a API do ViaCep. O problema é que essa API não fornece a informação de latitude e longitude.
Você pode:
1 - Trocar a API do ViaCep pelo CEPAberto (que fornece essa informação): https://cepaberto.com
No entanto ela possui os seguintes limites:
>
Citar
Inicialmente, a API tem um limite de requisições por intervalo de tempo. Este limite existe para inibir possiveis bots que possam comprometer o tempo de resposta. Atualmente, o intervalo entre requisições, para cada usuário, é de 1 segundo. Requisições mais frequentes resultarão em HTTP Error 403 Forbidden. O limite máximo de requisições, para cada usuário, é de 10 mil por dia.
2 - Ou consultar diretamente a API do Google Maps (que também vai impor limites de consulta).
Se não me engano basta você criar uma conta no Google Dev Console, que vai te liberar uma API_KEY, e com isso você pode consultar dessa forma:
https://maps.googleapis.com/maps/api/geocode/json?address=CEP&key=API_KEY