Pour une raison quelconque, lorsque j'appelle navigator.geolocation.getCurrentPosition()
, je reçois soudainement l'erreur suivante:
Network location provider at 'https://www.googleapis.com/' : Returned error code 403.
Cela fonctionnait parfaitement hier! Pourrait-il y avoir quelque chose avec leurs serveurs?
Il semble que ce soit de retour maintenant. Mais avant de me rendre compte que cela fonctionnait, j'ai utilisé un autre moyen d'obtenir les données de localisation recommandées par un autre utilisateur sur reddit.com.
var latLong;
$.getJSON("http://ipinfo.io", function(ipinfo){
console.log("Found location ["+ipinfo.loc+"] by ipinfo.io");
latLong = ipinfo.loc.split(",");
});
Source: https://www.reddit.com/r/webdev/comments/3j8ipj/anyone_else_had_issues_with_the_html5_geolocation/
Ce n'est pas le problème HTTPS, même les propres exemples de Google échouent, voir https://developers.google.com/maps/documentation/javascript/examples/map-geolocation
J'ai ouvert un fil sur reddit et pour en savoir plus, je me suis lié ici: https://www.reddit.com/r/webdev/comments/3j8ipj/anyone_else_had_issues_with_the_html5_geolocation/
Des gens du monde entier ont signalé le même problème.
Cela arrive aussi pour moi sur idoco.github.io/map-chat
Je suppose que cela est lié aux modifications que Google avait planifiées pour Deprecating Powerful Features on Insecure Origins il semble que certains changements aient été apportés au cours des derniers jours dans ce chrome Numéro 520765: Deprecation et suppression de puissants composants sur Insecure origines
Pouvez-vous tester votre site sur https pour le confirmer?
En attendant, j'ai trouvé cette utilisation de l'API comme solution de contournement sur this repo :
$.getJSON("http://ipinfo.io", function(doc){
var latlong = doc.loc.split(",")
setUserLocation(parseFloat(latlong[0]), parseFloat(latlong[1]));
getLocation(parseFloat(latlong[0]), parseFloat(latlong[1])).then(function(res){
userLocationName = res
})
initialiseEventBus();
map.panTo(userLocation);
}, function(err) {
setUserLocation(Math.random()*50, Math.random()*60);
userLocationName = "unknown.na"
initialiseEventBus();
map.panTo(userLocation);
})
J'ai eu le même problème, vous devez vérifier votre tableau de bord developer et vous assurer que votre clé API n'a pas de restrictions d'utilisation ni d'avertissements.