2012-06-06 46 views
2

我正在玩弄{x} api试图创建一个规则,显示通知您的位置(也可能将其链接到打开的Google地图?),每次停车时(当您从驾车前往行走/静止)。我在{x}的演示视频中看到了它,但我没有找到规则,所以我想我会尝试自己制作,只是为了好玩。Javascript:获取当前在{x} api上使用的GPS位置?

我有一些问题得到当前的GPS坐标,但我似乎无法弄清楚如何使用位置API。

这里是我到目前为止有:

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

    } 
}); 

如果任何JavaScript大师那里可以看看API的将是巨大的。这里的位置API:

https://www.onx.ms/#apiPage/location

回答

2

它看起来像modeOfTransportchanged处理程序不直接喂你的位置信息。 (为什么?可能是因为modeOfTransport只能从加速度计遥测中断言,所以甚至不涉及GPS。)您必须在处理程序中构建并启动locationListener,并使用馈送给该侦听器处理程序的位置信息。例如,您可以尝试以下方法(或多或少地将它们拼凑在一起,从文档中复制和粘贴)。

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(); 
    } 
}); 
+0

我认为这将有点像这样做,我只是不知道如何拼凑在一起。我不确定它究竟是如何工作的。 5000间隔,是不是相关?因为监听者在第一次运行时会被阻止,对吗?还是等待5秒钟才开始?如果是这样,将其设置为0会更聪明吗?谢谢! – qwerty

+0

@qwerty当位置处理程序被触发时,文档并不完全清楚,但是 - 我期望它被调用一次,然后停止。此外,我认为所有这些都在单线程中运行(因为它们似乎要迎合Web开发人员),这也意味着即使多个事件排队调用您的处理程序,它们也会被阻塞,然后被忽略您在第一次调用后停止侦听器。 – cheeken

+0

那好吧。我要去开车!谢谢您的帮助! – qwerty