Foros del Web » Programando para Internet » Javascript »

Saber si se ha aceptado la geolocalizacion

Estas en el tema de Saber si se ha aceptado la geolocalizacion en el foro de Javascript en Foros del Web. Buenas que tal estais, Veran estoy con un codigo que hace la geolocalizacion y funciona bien, la cosa es que necesito saber si el usuario ...
  #1 (permalink)  
Antiguo 04/11/2013, 01:59
 
Fecha de Ingreso: octubre-2013
Mensajes: 17
Antigüedad: 10 años, 6 meses
Puntos: 0
Saber si se ha aceptado la geolocalizacion

Buenas que tal estais,

Veran estoy con un codigo que hace la geolocalizacion y funciona bien, la cosa es que necesito saber si el usuario acepta cuando le sale la ventana del navegador para permitir geolocalizacion o no.

He buscado alguna información pero no encuentro nada.

Pego el codigo:
Código Javascript:
Ver original
  1. var conexion;
  2.  
  3.  
  4.  
  5. function crearXMLHttpRequest(){
  6.   var xmlhttp=false;
  7.   try {
  8.     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  9.   } catch (e) {
  10.     try {
  11.        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  12.     } catch (E) {
  13.       xmlhttp = false;
  14.       }
  15.   }
  16.  
  17.   if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  18.     xmlhttp = new XMLHttpRequest();
  19.   }
  20.   return xmlhttp;
  21. }
  22.  
  23. function consultar()
  24. {
  25.  
  26.  
  27. //function detectar(){
  28. if(geo_position_js.init())
  29. {
  30.     document.getElementById('mapa').innerHTML="Leyendo...";
  31.     geo_position_js.getCurrentPosition(mostra_ubicacion,function(){document.getElementById('mapa').innerHTML="No se puedo detectar la ubicación"},{enableHighAccuracy:true});
  32. }   else    {
  33.     document.getElementById('mapa').innerHTML="La geolocalización no funciona en este navegador.";
  34. }
  35. //}
  36. function mostra_ubicacion(p){
  37. var coords = p.coords.latitude + "," + p.coords.longitude;
  38. document.getElementById('mapa').innerHTML="<p>latitud="+p.coords.latitude.toFixed(7)+" longitud="+p.coords.longitude.toFixed(7) + "</p>";
  39.  
  40.  
  41.  
  42.  
  43.   var latitud = p.coords.latitude.toFixed(7);
  44.   var longitud = p.coords.longitude.toFixed(7);  
  45.     conexion=crearXMLHttpRequest();
  46.     conexion.onreadystatechange = procesarEventos;
  47.     conexion.open('GET', 'geo.php?latitud=' + latitud + '&longitud=' + longitud, true);
  48.     conexion.send(null);
  49. }
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56. }
  57.  
  58. function procesarEventos()
  59. {
  60.  
  61.   var detalles = document.getElementById("resultado");  
  62.  
  63.   if(conexion.readyState == 4)
  64.   {
  65.     detalles.innerHTML = conexion.responseText;    
  66.  
  67.   }
  68.   else
  69.   {
  70.     detalles.innerHTML = '';
  71.   }
  72.  
  73. }

A ver si alguien sabe como se podria hacer esto
  #2 (permalink)  
Antiguo 05/11/2013, 13:55
danneg
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Saber si se ha aceptado la geolocalizacion

Tan fácil como una variable global, ej.

Código Javascript:
Ver original
  1. var isGeo = false;
  2. if (navigator.geolocation) {
  3.     procesosMapa(); // Todo lo que haces en tu code
  4.     isGeo = true;
  5. }
  6.  
  7. // Compruebas si aceptó
  8.  
  9. if (isGeo) {
  10.     acepto();
  11. } else {
  12.     noAcepto();
  13. }
  #3 (permalink)  
Antiguo 06/11/2013, 03:22
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Saber si se ha aceptado la geolocalizacion

Eso sólo sirve para saber si la geolocalización es soportada por el navegador.

Para saber si se ha aceptado la geolocaclización, se obtiene mediante su método getCurrentPosition.
Ese método acepta dos parámetros. El primero es la función que se disparará si se obtiene una posición correcta. El segundo se disparará si algo falla al obtener la coordenada.

Código Javascript:
Ver original
  1. navigator.geolocation.getCurrentPosition(funcionPosicion, funcionError);
  2.  
  3. function funcionPosicion(posicion){
  4.     alert(JSON.stringify(posicion));
  5. }
  6. function funcionError(error){
  7. switch(error.code)
  8.     {
  9.     case error.PERMISSION_DENIED:
  10.      alert("El usuarion rechazó el uso de la geolocalización.");
  11.       break;
  12.     case error.POSITION_UNAVAILABLE:
  13.       alert("La posición de grolocalización no está disponible.");
  14.       break;
  15.     case error.TIMEOUT:
  16.       alert("Caducó el tiempo de espera de la solicitud de geolocalización.");
  17.       break;
  18.     case error.UNKNOWN_ERROR:
  19.       alert("Ha ocurrido un error desconocido en la geolocalización.");
  20.       break;
  21.     }
  22. }

Etiquetas: funcion, html, js, php, ventana
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:05.