Le code ci-dessous fonctionne dans Firefox mais pas dans Google 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>
Que se passe-t-il? Je pensais que Google Chrome était supposé supporter l'API de géolocalisation du W3C.
Fonctionne parfaitement pour moi - avec Chrome 11 et Firefox 4.0.1 sur Win 7
Options > Under the Hood > Content Settings > Location
file:///
ne sont pas autorisées à accéder à l'emplacement. Voir Invite d’emplacement géographique HTML 5 dans Chrome .Si votre domaine n'est pas sécurisé (par exemple, HTTP plutôt que HTTPS), l'accès à l'emplacement dans Chrome n'est pas autorisé. C'est depuis la version 50 de Chrome (12h PST le 20 avril 2016).
Voir https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only pour plus de détails.
en 2017:
Remarque: à partir de Chrome 50, l'API de géolocalisation ne fonctionnera que dans des contextes sécurisés tels que HTTPS. Si votre site est hébergé sur une origine non sécurisée (telle que HTTP), les demandes d'obtention de l'emplacement des utilisateurs ne fonctionneront plus.
API de géolocalisation supprimée des origines non sécurisées dans Chrome 50
L'API de géolocalisation vous permet de découvrir, avec le consentement de l'utilisateur, son emplacement. Vous pouvez utiliser cette fonctionnalité pour, par exemple, guider un utilisateur vers sa destination et géolocaliser le contenu créé par l'utilisateur; par exemple, marquer l'endroit où une photo a été prise.
L'API de géolocalisation vous permet également de voir où se trouve l'utilisateur et de garder un œil sur eux lorsqu'il se déplace, toujours avec le consentement de l'utilisateur (et uniquement pendant que la page est ouverte). Cela crée de nombreux cas d'utilisation intéressants, tels que l'intégration à des systèmes dorsaux pour préparer une commande pour la collecte si l'utilisateur est à proximité.
Vous devez être conscient de beaucoup de choses lorsque vous utilisez l'API de géolocalisation. Ce guide vous explique les cas d'utilisation et solutions courants.
https://developers.google.com/web/fundamentals/native-hardware/user-location/?hl=fr
Cela fonctionne très bien pour moi - avec Chrome 11 et Firefox 4.0.1 sur Win 7
Assurez-vous de ne pas désactiver le suivi de l'emplacement dans Chrome: Options> Sous le capot> Paramètres de contenu> Emplacement, veuillez autoriser l'autorisation . Après avoir vérifié l'autorisation, veuillez l'exécuter.
après avoir exécuté soit ce sera sucesscallback
ou alors il s'agit 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>