Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:使用{x}api获取当前GPS位置?_Javascript_Android_Api_Location - Fatal编程技术网

Javascript:使用{x}api获取当前GPS位置?

Javascript:使用{x}api获取当前GPS位置?,javascript,android,api,location,Javascript,Android,Api,Location,我在玩on{x}api,试图创建一个规则,在每次停车(从开车到走路/站着)时显示你在哪里的通知(可能链接到打开谷歌地图?)。我在{x}的演示视频中看到了它,但我没有找到规则,所以我想我应该自己做,只是为了好玩 不过,我在获取当前gps坐标时遇到了一些问题,我似乎不知道如何使用定位api 以下是到目前为止我得到的信息: device.modeOfTransport.on('changed', function(signal) { if (signal.previous === 'drivi

我在玩on{x}api,试图创建一个规则,在每次停车(从开车到走路/站着)时显示你在哪里的通知(可能链接到打开谷歌地图?)。我在{x}的演示视频中看到了它,但我没有找到规则,所以我想我应该自己做,只是为了好玩

不过,我在获取当前gps坐标时遇到了一些问题,我似乎不知道如何使用定位api

以下是到目前为止我得到的信息:

device.modeOfTransport.on('changed', function(signal) {
    if (signal.previous === 'driving' && (signal.current === 'walking' || signal.current === 'atrest')) {

    }
});
如果有javascript大师可以看看api,那就太好了。以下是位置api:


看起来
传输模式
已更改
处理程序不会直接向您提供位置信息。(为什么?可能是因为
modeOfTransport
只能通过加速计遥测来断言,所以GPS甚至不涉及。)您必须在处理程序中构建并启动
locationListener
,并使用提供给该侦听器处理程序的位置信息

例如,您可以尝试以下方法(我或多或少地从文档的复制和粘贴中拼凑而成)


我想应该是这样做的,我只是不知道怎么把它拼凑起来。但我不确定它到底是如何工作的。5000次间隔,这无关紧要吗?因为侦听器在第一次运行时会被停止,对吗?还是要等5秒钟才能开始?如果是这样,将其设置为0会更聪明,对吗?谢谢大家!@qwerty该文档并不完全清楚位置处理程序何时被触发,但是是的-我希望它被调用一次,然后停止。此外,我假设所有这些都是在一个线程中运行的(因为它们似乎是为了迎合web开发人员),这也意味着即使多个事件排队来调用处理程序,它们也会被阻止,然后被忽略,因为您在第一次调用后停止了侦听器。我要开车去兜风!谢谢你的帮助!
device.modeOfTransport.on('changed', function(signal) {
    if (signal.previous === 'driving' && (signal.current === 'walking' || signal.current === 'atrest')) {
         var listener = device.location.createListener('GPS', 5000); 
         listener.on('changed', function (signal) {
            console.info('Lat: ' + signal.location.latitude);
            console.info('Lon: ' + signal.location.longitude);
            listener.stop();
         });
         listener.start();
    }
});