web-dev-qa-db-fra.com

Erreur de géolocalisation dans Google Chrome

Je sais, ce problème a déjà été signalé dans le passé.

Mais cela a été résolu en 2015. Maintenant, nous sommes de retour en 2017!

L'erreur ( Erreur de position de géolocalisation, code 2 ) apparaît dans Chrome (version 56.0.2924.87 (64 bits)):

Fournisseur d'emplacement réseau à ' https://www.googleapis.com/ ': Renvoyé code d'erreur 403.

Code d'erreur 2

Remarque: Chrome nécessite HTTPS pour la géolocalisation!

function getCoords() {
  return new Promise(function(resolve, reject) {
    if (navigator.permissions) {
      navigator.permissions.query({
        name: 'geolocation'
      }).then(function(permission) {
        switch (permission.state) {
          case 'granted':
            navigator.geolocation.getCurrentPosition(function(pos) {
              resolve(pos.coords);
            }, function(error) {
              console.error('Error Code: ' + error.code + ' - ' + error.message);
            });
            break;
          case 'Prompt':
            console.info('Check Geolocation Promt.');
            navigator.geolocation.getCurrentPosition(function(pos) {
              resolve(pos.coords);
            }, function(error) {
              console.error('Error Code: ' + error.code + ' - ' + error.message);
            });
            break;
          case 'denied':
          default:
            resolve(null);
            break;
        }
      });
    } else {
      reject(new DOMError('NotImplemented', 'Permission API is not supported'));
    }
  });
}

function locate() {
  if (typeof Promise !== "undefined" && Promise.toString().indexOf("[native code]") !== -1) {
    getCoords().then(function(coords) {
      if (coords !== null) {
        console.log(coords);
        document.getElementById('coords').value = coords.latitude + ', ' + coords.longitude;
      } else {
        console.warn('No coords returned :/');
      }
    });
  } else {
    console.warn('This browser doesn\'t support geolocation.');
  }
}
<button onclick="javascript:locate()">Locate me</button>
<input type="text" id="coords" readonly/>

Le problème semble être le même dans cet exemple d'API Google Maps: https://developers.google.com/maps/documentation/javascript/examples/map-geolocation

10
Sebastian

Cela m'est arrivé aussi, j'ai passé 30 minutes à essayer de trouver une solution pour ensuite essayer de redémarrer

3
Stiofan O'Connor

Tout le monde sur mon lieu de travail rencontre actuellement ce problème à la fois avec notre propre code et avec les exemples d'API Google Maps.

Il semble que le service de localisation du réseau de Google ne soit pas disponible périodiquement, ce qui entraîne l'échec de tous les appareils qui ne peuvent pas déterminer l'emplacement à partir d'autres moyens (GPS ou triangulation de la tour cellulaire).

Honnêtement, cela semble être une implémentation vraiment fragile - pourquoi n’existe-t-il pas un fournisseur d’emplacement de réseau de secours pour Chrome?

1
wyqydsyq

Je sais que le sujet contient Google Chrome, mais cette erreur:

Network location provider at 'https://www.googleapis.com/' : No response received.

arrive également sur Chromium, version 70.0.3538.67 (Developer Build) (64 bits) (macOS, High Sierra).

Peut-être que ceci https://bugs.chromium.org/p/chromium/issues/detail?id=820945&can=2&start=0&num=100&q=geolocation&colspec=ID est lié.

0
Cezary Tomczyk

Le problème semble être résolu. Je ne change rien. Je pense que c'est un problème de proxy d'entreprise.

0
Sebastian