jQuery plugin which acts as a simplification of the W3C Geolocation API
HTML JavaScript
Latest commit 8fdcea3 Feb 22, 2016 @manuelbieh Merge pull request #6 from primus852/patch-1
Update bower.json

README.md

jQuery Geolocation

A small jQuery plugin which acts as a simplification of the Geolocation API.

Instead of using navigator.geolocation.getCurrentPosition you can now just use the jQuery methods $.geolocation.get() or $.geolocation.watch().

Contrary to the standard API the only parameter the functions expect is an object with three properties in no particular order: success, error, options. For success and error you can also use their alias properties win (or done) and fail: $.geolocation.get({win: function() {}, fail: function() {}, options);

You can also use $.geolocation.getCurrentPosition(success, error, options) to get native API feeling if this makes you happier. In conjunction with my Geolocation API polyfill this also works with some non-standard Geolocation APIs like Google Gears or Blackberry Location.

Usage

$.geolocation.clearWatch(integer watchID)

Stops tracking of the user for the according watchID.

$.geolocation.get(object config)

Get the current position of the user

Config properties

  • error
    Function to call if geolocation request failed
  • fail
    Alias for error
  • options Options for the geolocation request
    • enableHighAccuracy
    • maximumAge
    • timeout
  • success
    Function to call if geolocation request was successful
  • win
    Alias for success

$.geolocation.getCurrentPosition(callback success, callback error, object settings)

Get the current position of the user (API standard behavior)

Parameters

success Function to call if geolocation request was successful
error Function to call if geolocation request failed
options Options for the geolocation request

  • enableHighAccuracy
  • maximumAge
  • timeout

$.geolocation.stop(integer watchID)

Stops tracking of the user for the according watchID.

$.geolocation.stopAll()

Stops all running watchPosition callbacks.

$.geolocation.watch(object config)

Track the movement of the user Returns: watchID (Integer)

Config properties

  • error
    Function to call if geolocation request failed
  • fail
    Alias for error
  • settings Options for the geolocation request
    • enableHighAccuracy
    • maximumAge
    • timeout
  • success
    Function to call if geolocation request was successful
  • win
    Alias for success

$.geolocation.watchPosition(callback success, callback error, object settings)

Track the movement of the user (API standard behavior) Returns: watchID (Integer)

Parameters

success Function to call if geolocation request was successful
error Function to call if geolocation request failed
options Options for the geolocation request

  • enableHighAccuracy
  • maximumAge
  • timeout

Examples

function alertMyPosition(position) {
    alert("Your position is " + position.coords.latitude + ", " + position.coords.longitude);
}

function noLocation(error) {
    alert("No location info available. Error code: " + error.code);
}

$('#getPositionButton').on('click', function() {
    $.geolocation.get({win: alertMyPosition, fail: noLocation});
});

$('#watchPositionButton').on('click', function() {
    // alertMyPosition is called each time the user's position changes
    myPosition = $.geolocation.watch({win: alertMyPosition}); 
});

$('#stopButton').on('click', function() {
    $.geolocation.stop(myPosition);
});

Deferreds

New in 1.1.0: jQuery Deferreds are now supported for get and getCurrentPosition. Just use: $.geolocation.get().done(successCallback).fail(errorCallback);

Attention: Deferreds support is in beta state.

Demo

You can find a demo here