使用 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 获取设备的当前位置的主要内容,如果未能解决你的问题,请参考以下文章

如何在谷歌地图 api v2 上获取设备的当前位置?

获取棉花糖中的当前位置 0,其中 23 API 以下使用融合位置给出准确的当前位置

如何获取当前位置IOS设备

iOS 使用 GPS 设备获取当前位置

使用 Python 获取设备的物理位置?

如何在反应原生应用程序中使用 Geolocation 获取设备的当前位置