36

For some reason suddenly when calling navigator.geolocation.getCurrentPosition() I get this error:

Network location provider at 'https://www.googleapis.com/' : Returned error code 403.

It used to work perfectly yesterday! Could there be anything with their servers??

mllm
  • 17,068
  • 15
  • 53
  • 64

3 Answers3

14

It appears it is back up now. But before I realized it was working, I used another way to get location data as recommended by another user on 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/

Amin
  • 371
  • 2
  • 11
  • 1
    This appears to be unreliable, I'm showing up in richardson texas, which is news to me, since I'm in SF. Sorry for being snarky. – Dan Doyon Sep 01 '15 at 19:42
  • This just looks up the current IP in big geoIP tables - specially on mobile devices this is not the best way (GSM IP's are Pool-IPs, and GPS is much more accurate) – CodeBrauer Mar 31 '16 at 15:16
1

This happens for me too on idoco.github.io/map-chat

I suspect that this is related the the changes google planed for Deprecating Powerful Features on Insecure Origins it seems that some changes were done in the last few days in this chromium Issue 520765: Deprecation and removal of powerful features on insecure origins

Can you test your site over https to confirm that?

In the meanwhile I found this api usage as a workaround on 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);
  })
Ido.Co
  • 5,317
  • 6
  • 39
  • 64
  • localhost is defined as secure here: [Prefer Secure Origins For Powerful New Features](https://sites.google.com/a/chromium.org/dev/Home/chromium-security/prefer-secure-origins-for-powerful-new-features) but still doesn't work too... – hooke Sep 01 '15 at 12:22
  • Tried both Http:// and Https:// on internal and external sites with no change in results (Fails in Chrome/FF works in IE. Tried it in fiddler with a standard http:// head and it worked. – Les McCutcheon Sep 01 '15 at 12:48
  • 1
    we’re using https and this still happens – mllm Sep 01 '15 at 12:51
0

I had the same issue, you have to check your developer dashboard and make sure that your API key has no usage restrictions or warnings.

Carlos_E.
  • 671
  • 8
  • 14