spip_nursit/plugins/dist/themes/zpip-1/jqtouch/extensions/jqt.location.js

68 lines
2.3 KiB
JavaScript
Raw Normal View History

2023-06-01 15:30:12 +00:00
/*
_/ _/_/ _/_/_/_/_/ _/
_/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
_/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
_/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
_/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
_/
_/
Created by David Kaneda <http://www.davidkaneda.com>
Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
Special thanks to Jonathan Stark <http://jonathanstark.com/>
and pinch/zoom <http://www.pinchzoom.com/>
(c) 2009 by jQTouch project members.
See LICENSE.txt for license.
*/
(function($) {
if ($.jQTouch)
{
$.jQTouch.addExtension(function Location(){
var latitude, longitude, callback;
function checkGeoLocation() {
return navigator.geolocation;
}
function updateLocation(fn) {
if (checkGeoLocation())
{
callback = fn;
navigator.geolocation.getCurrentPosition(savePosition);
return true;
} else {
console.log('Device not capable of geo-location.');
fn(false);
return false;
}
}
function savePosition(position) {
latitude = position.coords.latitude;
longitude = position.coords.longitude;
if (callback) {
callback(getLocation());
}
}
function getLocation() {
if (latitude && longitude) {
return {
latitude: latitude,
longitude: longitude
}
} else {
console.log('No location available. Try calling updateLocation() first.');
return false;
}
}
return {
updateLocation: updateLocation,
getLocation: getLocation
}
});
}
})(jQuery);