diff options
Diffstat (limited to 'themes/extensions/jqt.location.js')
-rw-r--r-- | themes/extensions/jqt.location.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/themes/extensions/jqt.location.js b/themes/extensions/jqt.location.js new file mode 100644 index 0000000..29b79a0 --- /dev/null +++ b/themes/extensions/jqt.location.js @@ -0,0 +1,68 @@ +/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ 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);
\ No newline at end of file |