2011-05-30 18 views
17

El código siguiente funciona en Firefox, pero no en Google Chrome:W3C Geolocalización API no funciona en Chrome

<!DOCTYPE html> 
<html> 
    <head> 
     <title>title</title> 
     <script type="text/javascript"> 
      var successCallback = function(data) { 
       console.log('latitude: ' + data.coords.latitude + ' longitude: ' + data.coords.longitude); 
      }; 

      var failureCallback = function() { 
       console.log('location failure :('); 
      }; 

      var logLocation = function() { 

       //determine if the handset has client side geo location capabilities 
       if(navigator.geolocation){ 
        navigator.geolocation.getCurrentPosition(successCallback, failureCallback); 
       } 
       else{ 
        alert("Functionality not available"); 
       } 
      }; 

      logLocation(); 
      setTimeout(logLocation, 5000); 
     </script> 
    </head> 
    <body> 
     <p>Testing</p> 
    <body> 
</html> 

¿Qué está pasando? Pensé que se suponía que Google Chrome era compatible con la API de geolocalización W3C.

Respuesta

20

funciona perfectamente para mí - tanto con Chrome 11 y Firefox 4.0.1 en Windows 7

  • asegurarse de que no ha desactivado el seguimiento de localización en Chrome: Options > Under the Hood > Content Settings > Location
  • Debido a las restricciones de seguridad, los recursos cargados con el esquema file:/// no tienen permitido el acceso a la ubicación. Ver HTML 5 Geo Location Prompt in Chrome.
+0

Ah, la segunda me consiguió. Bueno saber. Gracias por la ayuda. – LandonSchropp

+0

De nada :) –

+0

Gracias Hombre. 2da Opción Ayuda ;-) – Sopo

8

en 2017:

Nota: A partir de Chrome 50, la API de geolocalización sólo funcionará en contextos seguros, como HTTPS. Si su sitio está alojado en un origen no seguro (como HTTP), las solicitudes para obtener la ubicación de los usuarios ya no funcionarán.

0

La API de geolocalización le permite descubrir, con el consentimiento del usuario, la ubicación del usuario. Puede usar esta funcionalidad para cosas como guiar a un usuario a su destino y geoetiquetar el contenido creado por el usuario; por ejemplo, marcando donde se tomó una foto.

La API de geolocalización también le permite ver dónde está el usuario y vigilarlos mientras se desplazan, siempre con el consentimiento del usuario (y solo mientras la página está abierta). Esto crea una gran cantidad de casos de uso interesantes, como la integración con sistemas de fondo para preparar un pedido de recolección si el usuario está cerca.

Debe tener en cuenta muchas cosas cuando utiliza la API de geolocalización. Esta guía lo guiará a través de los casos de uso común y las soluciones.

https://developers.google.com/web/fundamentals/native-hardware/user-location/?hl=en

0

Funciona bien para mí - tanto con Chrome 11 y Firefox 4.0.1 en Windows 7

Asegúrese de que ha de seguimiento no discapacitados ubicación en Chrome: Opciones> Avanzadas> Contenido ajustes> Ubicación satisfacen dan el permiso y previa comprobación del permiso por favor, que corren

después de ejecutar cualquiera será sucesscallback o de lo contrario se trata de errorcallback

function sucesscallback (position) 
 
{ 
 

 
var userLatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
 

 
    
 
    var myOptions = { 
 
     zoom: 15, 
 
     center: userLatLng, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }; 
 
    var mapObject = new google.maps.Map(document.getElementById("googleMap"), myOptions); 
 

 
    var marker = new google.maps.Marker({ 
 
     map: mapObject, 
 
     position: userLatLng 
 

 
    }); 
 
    
 
} 
 

 

 

 

 
    function failureCallback(error) { 
 
    
 
     switch (error.code) { 
 
      case 1: 
 
       alert("User denied the request for Geolocation."); 
 
       break; 
 
      case 2: 
 
       alert("Location information is unavailable. Please ensure Location is On"); 
 
       break; 
 
      case 3: 
 
       alert("timeout"); 
 
       break; 
 
      case 4: 
 
       alert("An unknown error occurred."); 
 
       break; 
 
     } 
 
    }
<div id='googleMap' style='width:300px;height:300px;'> 
 
</div>

Cuestiones relacionadas