我一直在使用on {X} api,我正在尝试获取一些位置数据,但是尽管我尝试了但是我无法弄清楚如何获得/ current / location。
文档
这是他们的榜样:
// create GPS listener with update interval of 5 sec
// you also use CELL or PASSIVE providers here
var listener = device.location.createListener('GPS', 5000);
// register on location changed
listener.on('changed', function(signal) {
// on receiving location print it and stop the provider
console.info('Lat: ' + signal.location.latitude);
console.info('Lon:' + signal.location.longitude);
listener.stop();
});
// start the GPS listener
listener.start();
然而,似乎这仅在位置更改时才有效。我如何获得当前位置数据(我确信必须有办法)。
我目前的代码:
var lat;
var lon;
listener.on('changed', function (signal) {
var lat = signal.location.latitude;
var lon = signal.location.longtitude;
listener.stop();
});
listener.start();
//the rest of my code which just sends the data back to a webserver (this bit works)
然而,当我检查其内容时,lat和lon都注册为'undefined'。 (因为设备没有移动。)
答案 0 :(得分:4)
所以在玩了一段时间后,我想出了我哪里出错了。
我需要在locListener.stop();
之后添加我想要从位置数据访问的数据的定义,虽然我不完全理解为什么或如何工作它是一个修复,以下代码适用于我。 (我还添加了一些地图内容;))
var loc;
var locListener = device.location.createListener('CELL', 100);
locListener.on('changed', function (signal) {
// stop listening to location changed events after getting the current location
locListener.stop();
var mapUrlPattern = 'https://feeds.onx.ms/maps?wp=lat,lon';
var mapUrl = mapUrlPattern.replace(/lat/g, signal.location.latitude).replace(/lon/g, signal.location.longitude);
loc = mapUrl;
});
locListener.start();