使用 onX api 获取设备的当前位置
Posted
技术标签:
【中文标题】使用 onX api 获取设备的当前位置【英文标题】:Getting the current location of a device using the onX api使用 onX api 获取设备的当前位置 【发布时间】:2012-07-08 20:46:57 【问题描述】:我一直在使用 onX api,我正在尝试获取一些位置数据,但是尽管我尝试了很多,但我无法弄清楚如何获取 /current/ 位置。
文档:
https://www.onx.ms/#apiPage/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 都注册为“未定义”。 (因为设备没有移动。)
【问题讨论】:
【参考方案1】:所以在玩了一段时间的 api 之后,我发现了我哪里出错了。
我需要在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();
【讨论】:
以上是关于使用 onX api 获取设备的当前位置的主要内容,如果未能解决你的问题,请参考以下文章