Ir para conteúdo

Arquivado

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

mpcarvalho

Geolocalização HTML

Recommended Posts

Pessoal, seguinte. Eu sei somente o basicão de JS, peguei um script para obter a localização do usuário que acessar a minha página, estou testando algumas funções inicialmente para realizar outras aplicações futuras, dado que nunca utilizei essa função antes.

 

Dúvida 1 = Quero melhorar a precisão dos dados que irei receber do usuário, para isso já pesquisei e encontrei a seguinte função: 

 

{enableHighAccuracy:true, maximumAge:30000, timeout:27000}

 

Onde posso utiliza-la no meu código abaixo?

 

<script>
    window.onload = getLocation;
    
function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);  
  } else {
      location.href="https://google.com";
  }
}

function showPosition(position) {
     var latitude = position.coords.latitude; 
    var longitude =  position.coords.longitude;
    var accuracy = position.coords.accuracy;

    $.ajax({
        method: "post",
        url: "page.php",
         data: {'latitude': latitude, 'longitude': longitude, 'accuracy': accuracy},
         success: function(data){
             location.href="https://google.com";
         }
       });
    }
</script>

 

Dúvida 2 = Quando o usuário rejeitar o fornecimento de sua localização, como posso redireciona-lo par ama URL mesmo assim, sendo que na forma acima não funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por FerdzFernando
      Por que ele está trazendo localização EUA no emulador android studio? É possível fazer essa correção ?
    • Por juliomarques75
      Olá pessoal, estou aqui para pedir ajuda, mas não para me dar mastigado nada, mas alguém que possa me mostrar o caminho das pedras para minha duvida.
      Seguinte, como faço para o site abrir determinada área ou pagina, de acordo onde ele esta acessando?
      Exemplo, se estou na cidade "B" ele abre determinada pagina, e se vou para a cidade "F" ele abre outra pagina, falo assim pq cada pagina vai possuir uma determinada consulta ao banco de dados e realizar a pesquisa em uma tabela especifica para aquela região.
      Se alguém puder me ajudar e me orientar pra que lado seguir agradeço muito...
       
      Abraço a todos!
    • Por Webster Moitinho
      Estou tentando criar log de acessos em Banco de Dados com base em IP e Geolocalização. Para tanto estou usando um script disponibilizado por GeoIP-DB. Quando faço o teste local, dá tudo certo. Me dá a minha cidade, cep, latitude longitude... Porém, quando subo para a nuvem, ele mostra esses dados do servidor, e não os meus.
      Meu código php está assim:
      date_default_timezone_set('America/Sao_Paulo'); $json = file_get_contents('https://geoip-db.com/json'); $data = json_decode($json); $cidade = $data->city; $cep = $data->postal; $lat = $data->latitude; $long = $data->longitude; $PDO = new PDO( 'mysql:host=' . HOST . ';dbname=' . DB, USER, PASS ); $sql = "INSERT INTO `stat` (`id_stat`, `cidade`, `cep`, `latitude`, `longitude`) VALUES (NULL, $cidade, $cep, $lat, $long)"; $compile = $PDO->prepare($sql);  
    • Por oomaikoo
      Boa noite pessoal, estou tentando fazer um código, para mostrar um banner em meu site, quando o usuário entrar, baseado na localização dele. É basicamente o seguinte: a API de geolocalização retorna o nome da cidade, e, se for a cidade, então mostre o banner. Se não for, mostre outro. O código JavaScript que estou usando é esse:
      <script type="application/javascript"> function geoip(json){ var city = document.getElementById("user_city"); city.textContent = json.city; } </script> <script async src="https://get.geojs.io/v1/ip/geo.js"></script> A cidade é: <span id="user_city"></span>

      Esse código retorna o nome da cidade no <span id>.

      Porém eu preciso fazer um IF, ELSE no próprio JavaScript, para mostrar o banner ou não. Seria basicamente assim:
      <script type="application/javascript"> function geoip(json){ var city = document.getElementById("user_city"); city.textContent = json.city; } if (city == "nomedacidade") { document.write ("<img src='banner1.jpg'></img>"); } else { document.write ("<img src='banner2.jpg'></img>"); } </script> <script async src="https://get.geojs.io/v1/ip/geo.js"></script>

      O problema é que a variável city não fica setada dentro do if, não retorna o nome da cidade, eu só queria comparar no if o nome da cidade com o que a API retorna.
      Alguém tem alguma ideia?
    • Por Sulivan de Deus
      Olá pessoal, estou pensando em usar a geolocalização, surgindo um pop-up, caso o usuário permita o site saber sua localização e algumas condicionais, por exemplo caso o internauta esteja perto da loja física.

      Por exemplo:

      Se o usuário permitiu a localização e estiver pelo menos a 5km da loja física, echo na mensagem x.

      Eu achei alguns códigos que me deram um caminho, mas não foi o suficiente para construir a idea já que não tenho conhecimento vasto em javascript, segue abaixo os códigos que encontrei.

      No meu caso não gostaria que mostrasse o mapa, apenas calculasse a rota para saber qual a distância do usuário até a loja física e enviássemos um pop-up falando quantos km ou metros ele esta da loja, e um link para ele ser levado para rota no google maps.
       
      <!DOCTYPE html> <html> <body> <script type="text/javascript"> window.onload=function(){ getLocation(); }; </script> <div id="mapholder"></div> <script src="http://maps.google.com/maps/api/js?sensor=false"></script> <script> var x=document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition,showError); } else{x.innerHTML="Geolocalização não é suportada nesse browser.";} } function showPosition(position) { lat=position.coords.latitude; lon=position.coords.longitude; latlon=new google.maps.LatLng(lat, lon) mapholder=document.getElementById('mapholder') mapholder.style.height='250px'; mapholder.style.width='500px'; var myOptions={ center:latlon,zoom:14, mapTypeId:google.maps.MapTypeId.ROADMAP, mapTypeControl:false, navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL} }; var map=new google.maps.Map(document.getElementById("mapholder"),myOptions); var marker=new google.maps.Marker({position:latlon,map:map,title:"Você está Aqui!"}); } function showError(error) { switch(error.code) { case error.PERMISSION_DENIED: x.innerHTML="Usuário rejeitou a solicitação de Geolocalização." break; case error.POSITION_UNAVAILABLE: x.innerHTML="Localização indisponível." break; case error.TIMEOUT: x.innerHTML="O tempo da requisição expirou." break; case error.UNKNOWN_ERROR: x.innerHTML="Algum erro desconhecido aconteceu." break; } } </script> </body> </html>
       
×

Informação importante

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