Source: org/terraswarm/accessor/accessors/web/hosts/cordova/modules/geolocation/geolocation.js

// geolocation module for cordova accessors host.
// 
// Below is the copyright agreement for the Ptolemy II system.
//
// Copyright (c) 2015-2016 The Regents of the University of California.
// All rights reserved.
//
// Permission is hereby granted, without written agreement and without
// license or royalty fees, to use, copy, modify, and distribute this
// software and its documentation for any purpose, provided that the above
// copyright notice and the following two paragraphs appear in all copies
// of this software.
//
// IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
// FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
// SUCH DAMAGE.
//
// THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
// INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
// CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
// ENHANCEMENTS, OR MODIFICATIONS.
//

/** Module for retrieving geolocation information, using the geolocation
 *  plugin for Cordova. Using the navigator geolocation, the current 
 *  position is passed in case of success.
 *  The exported function is 'getPosition', that has as parameters:
 *  ** the function to execute in case of success,
 *  ** the function to execute in case an error occured
 *  ** and the options, not applicable in this case.
 *  
 *  @module geolocation
 *  @author Chadlia Jerad
 *  @version $$Id: geolocation.js 75980 2017-07-18 00:19:25Z chadlia.jerad $$
 */

exports.requiredPlugins = ['cordova-plugin-geolocation'];

//At least on Android, the navigator.geolocation variable is defined even when the plugin
//is not installed. This check might do something on another platform.
if(typeof navigator.geolocation == "undefined"){
    console.log("WARNING: geolocation.js module does not have cordova-plugin-geolocation installed and will not work correctly.");
}

exports.getPosition = function(onSuccess, onError, options) {
	
	var watchID = navigator.geolocation.getCurrentPosition(
		function(position) {
			var location = {};
            location.latitude = position.coords.latitude;
            location.longitude = position.coords.longitude;         
            location.timestamp = position.timestamp;
            location.accuracy = 'high';
			onSuccess.call(this, location);
		},
		function(e) {
			onError.call(this, e);
		}, options
	);

};