Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcelo Eduardo_36310

Geolocalização IP pode me dar algum CEP, mesmo que aproximado?

Recommended Posts

Olá,

Não sou programador, eu apenas tento arrumar o que eu uso,eu peguei este exemplo aqui mesmo no IMasters mesmo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Localização do usuário via Geo IP</title>


</head>
<body>
<div id="doc">
  <div id="map"></div>
  <div  id="info"></div>
</div>
<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script>
<script>
(function(){
  var info = document.getElementById('info');
  var lat = geoip_latitude();
  var lon = geoip_longitude();
  var city = geoip_city();
  var out = '<h3>Informaçoes de usa localização:</h3>'+
            '<ul>'+
            '<li>Latitude: ' + lat + '</li>'+
            '<li>Longitude: ' + lon + '</li>'+
            '<li>Cidade: ' + city + '</li>'+
            '<li>Cód. Região: ' + geoip_region() + '</li>'+
            '<li>Região: ' + geoip_region_name() + '</li>'+
            '<li>Código do País: ' + geoip_country_code() + '</li>'+
            '<li>Nome do País: ' + geoip_country_name() + '</li>'+
            '</ul>';
  info.innerHTML = out;
  var url = 'http://maps.google.com/maps/api/staticmap?center='+
            lat+','+lon+'&sensor=false&size=300x300&maptype=roadmap&key='+
            'ABQIAAAAijZqBZcz-rowoXZC1tt9iRT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQQBCa'+
            'F1R_k1GBJV5uDLhAKaTePyQ&markers=color:blue|label:I|'+lat+
            ','+lon+'6&visible='+lat+','+lon+'|'+(+lat+1)+','+(+lon+1);
  var map = document.getElementById('map');
  map.innerHTML = '<img src="'+url+'" alt="'+city+'">';

})();
</script>
</body>
</html>

A minha duvida é:

 

Ai mostra, cidade, estado,pais, é possivel exibir o CEP, mesmo que aproximadamente?

 

Agradeço a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com latitude e longitude, você pode faze a consulta na API do Google Maps.

https://developers.google.com/maps/documentation/geocoding/#Results

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, eu n consigo fazer assim, rsrs , eu nem sei se pode, se não pode o moderador pode excluir este post,

 

Eu já tenho o modulo funcional, só clicar em comprar que ele vai simular o frete, mas no meu exenplo um CEP da faixa 13, nada dinamico simplesmente u frete fixo pra teste neste caso,

 

http://www.apopular.com.br/apopular/product_info.php/capa-para-colchao-capa-para-colchao-hospitalar-de-solteiro-seu-colchao-comum-100-impermeavel-popular-2090345-p-42

 

quando a pagina shopping_cart.php é exibida mostra um custo, o meu problema é colocar o CEP do cliente (mesmo que aproximado)

 

Alguem pode me mandar uma mensagem privada com o valor pra resolver isto ai?

Compartilhar este post


Link para o post
Compartilhar em outros sites

No cadastro eu exigo pra endereço de entrega, mas neste exemplo que eu te passei funciona assim,

 

o cliente encontra o produto e clica em comprar, enquanto a página do carrinho de compras esta sendo carregada ele já recebe uma estimativa de frete, bem é o que eu pensei, sem precisar esperar a pagina carregar encontrar o campo do cep e preencher,

 

que é o que aparece la embaixo no simulador de frete, mas no caso atual um cep fixo que não atende a nenhum cliente e esta setado só pra verificar o funcionamento.

 

caso o cep do cliente n seja o mesmo que o que esta sendo levado em conta no cep rastreado por IP ele pode simular digitando o cep de destino e clicando em calcular.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, realente eu consegui juntar as informações que vcs me deram e ficou desta maneira

 

no header eu coloquei:

<!-- inicio  geolocalização -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
    var geocoder;
    if (navigator.geolocation) {
        geocoder = new google.maps.Geocoder();
        navigator.geolocation.getCurrentPosition(showPosition, handleError);
    }
 
    function showPosition(position) {
        showMap(position);
        showAddress(position);
    }
 
    function showMap(position){
        var latlon = position.coords.latitude + "," + position.coords.longitude;
        var imgUrl = "http://maps.googleapis.com/maps/api/staticmap?center=" + latlon + "&zoom=14&size=400x300&sensor=false";
        $("#map").html("<img src='" + imgUrl + "'>");
    }
 
    function showAddress(position){
        var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
        var city = "";
        var state = "";
 
        var postalCode = "";
        geocoder.geocode({ 'latLng': latlng }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if (results[1]) {
                    for (var i = 0; i < results[0].address_components.length; i++) {
                        for (var b = 0; b < results[0].address_components[i].types.length; b++) {
                            if (results[0].address_components[i].types[b] == "administrative_area_level_1") {
                                state = results[0].address_components[i];
                            }
                            if (results[0].address_components[i].types[b] == "locality") {
                                city = results[0].address_components[i];
                            }
                            if (results[0].address_components[i].types[b] == "postal_code") {
                                postalCode = results[0].address_components[i];
                            }
                         }
                     }
                     var state = state.short_name;
                     var city = city.short_name;
                     var zip = postalCode.short_name;
					 
					 $("#address").html(zip)
                   <!--  $("#address").html(city + ", " + state + " " + zip); original code show cidade and postcode -->
                 }
            }
        });
    }
 
    function handleError(error) {
        switch(error.code)
        {
            case error.PERMISSION_DENIED:
                alert("Usuário negou o pedido de Geolocalização.");
            break;
            case error.POSITION_UNAVAILABLE:
                alert("Informações sobre a localização está indisponível.");
            break;
            case error.TIMEOUT:
                alert("O pedido para obter a localização do usuário expirou.");
            break;
            case error.UNKNOWN_ERROR:
                alert("Ocorreu um erro desconhecido.");
            break;
         }
    }
</script>

e onde eu quero que apareça o mapa ou só o CEP eu coloquei:

// MOSTRA GEOLOCALIZAÇÃO 
	?>MAPA: <div id="map"></div>
<!--MOSTRA CEP:    <div id="address"> <?php 
        $order->delivery['postcode'] = 'xxxx-xxx'; //  CEP do resultad??? 
?>

Lembrando que eu não esc revi nada disto eu peguuei na web com os links que vcs me deram

 

só que eu não sei como colocar o resultado exibido da div address pra substituir o xxxx-xxx

 

 

valeu gente.


desculpa esqueci de uma parte do codigo

 

onde esta

 

<div id="address">

 

é assim

 

<div id="address"></div?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.