cordova-plugin-geolocation
Version:
Cordova Geolocation Plugin
65 lines (55 loc) • 2.06 kB
JavaScript
/*
* Copyright 2013 Research In Motion Limited.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var ids = {};
module.exports = {
getLocation: function (success, fail, args, env) {
var result = new PluginResult(args, env),
options = {
"enableHighAccuracy": decodeURIComponent(args[0]),
"maximumAge": decodeURIComponent(args[1])
};
navigator.geolocation.getCurrentPosition(function (pos) {
result.callbackOk(pos.coords, false);
}, function (err) {
result.error(err, false);
}, options);
result.noResult(true);
},
addWatch: function (success, fail, args, env) {
var result = new PluginResult(args, env),
options = {
"enableHighAccuracy": decodeURIComponent(args[1])
},
clientId = decodeURIComponent(args[0]);
id = navigator.geolocation.watchPosition(function (pos) {
result.callbackOk(pos.coords, false);
}, function (err) {
result.error(err, false);
}, options);
ids[clientId] = id;
result.noResult(true);
},
clearWatch: function (success, fail, args, env) {
var result = new PluginResult(args, env),
clientId = decodeURIComponent(args[0]),
id = ids[clientId];
if (id) {
navigator.geolocation.clearWatch(id);
delete ids[clientId];
}
result.ok(null, false);
}
};