Skip to content

Instantly share code, notes, and snippets.

@vjnrv
Forked from remy/geolocation.js
Created June 18, 2010 00:25
Show Gist options
  • Save vjnrv/443016 to your computer and use it in GitHub Desktop.
Save vjnrv/443016 to your computer and use it in GitHub Desktop.
if (!navigator.geolocation) {
navigator.geolocation = (function (window, document) {
function getCurrentPosition(callback) {
var geourl = 'http://www.google.com/jsapi?' + Math.random(),
iframe = document.createElement('iframe'),
doc, win;
iframe.style.display = 'none';
window.document.body.appendChild(iframe);
doc = iframe.contentDocument || iframe.contentWindow.document;
win = iframe.contentWindow;
// once the script has loaded, it triggers an onload event
// TODO: cross browser test
iframe.onload = function () {
// assign all the captured values across to our geo object
var geo = {
coords: {
latitude: win.google.loader.ClientLocation.latitude,
longitude: win.google.loader.ClientLocation.longitude
// other values are supported, i.e. accuracy, speed, heading, etc
},
timestamp: (new Date()).getTime()
};
// then remove the iframe from the body to clear the memory...I hope!
window.document.body.removeChild(iframe);
callback.call(callback, geo);
};
// create a document on the fly
doc.open();
doc.write('<' + 'script src="' + geourl + '"><' + '/script>');
doc.close();
}
return {
clearWatch: function () {},
getCurrentPosition: getCurrentPosition,
// TODO shouldn't be too difficult :)
watchPosition: function () {}
};
})(this, document);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment