3

I'm trying to use the HTML5 geolocation API; but I have problems to make it work on Firefox Chrome and Chromium :


init();

function init() {;
    // Get the current location
    getPosition();      
}

function getPosition() {
    navigator.geolocation.getCurrentPosition(success, fail,{
        enableHighAccuracy:true,
        timeout:10000,
        maximumAge:Infinity
    });    
}   

function success(position) {
    alert("Your latitude: " + position.coords.latitude + "longitude: "
        + position.coords.longitude);
}

function fail(e) {
    alert("Your position cannot be found"+e.code+" => "+e.message);
}

In IE9 and Safari it works flawlessly; but :

  • in Firefox (v13 and V14) there is an error code 3 (timeout)
  • in Chrome and Chromium (v20 and v21) there is and error code 2 with the message "Network location provider at 'https://maps.googleapis.com/maps/api/browserlocation/json?browser=googlechrome&sensor=true' : Response was malformed."

I have a fresh install of Chrome (installed today on windows XP, no extensions) and I have authorized the geolocation in the browser.

You can try it there : http://jsfiddle.net/mhj82/38/

Is there a solution to make it work on all browser supporting geolocation ?

Molochdaa
  • 2,158
  • 1
  • 17
  • 23

3 Answers3

0

Have you read this ? http://code.google.com/p/chromium/issues/detail?id=41001

At the end of the thread they come to the conclusion that in order to work in Chrome, geolocation must be performed on a device with a working wifi adapter.

Was wifi enabled on your computer ?

(dunno for firefox)

CAP
  • 317
  • 1
  • 6
0

I have to wait until the document is loaded to get it work in chrome

jQuery().ready(function() {
   if (navigator.geolocation) { 
        navigator.geolocation.getCurrentPosition....
    }
});
jla
  • 9,684
  • 2
  • 21
  • 18
0

Try this tested in chrome desktop and mobile

if (navigator.geolocation) {
    var latitude = null;
    var longitude = null;
    navigator.geolocation.getCurrentPosition(function (position) {
        latitude = position.coords.latitude;
        longitude = position.coords.longitude;
   });



} else {
    alert("Geolocation API is not supported in your browser");
};
fuzzybear
  • 2,325
  • 3
  • 23
  • 45