Javascript:获取当前在{x} api上使用的GPS位置?
问题描述:
我正在玩弄{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:
答
它看起来像modeOfTransport
changed
处理程序不直接喂你的位置信息。 (为什么?可能是因为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();
}
});
我认为这将有点像这样做,我只是不知道如何拼凑在一起。我不确定它究竟是如何工作的。 5000间隔,是不是相关?因为监听者在第一次运行时会被阻止,对吗?还是等待5秒钟才开始?如果是这样,将其设置为0会更聪明吗?谢谢! – qwerty
@qwerty当位置处理程序被触发时,文档并不完全清楚,但是 - 我期望它被调用一次,然后停止。此外,我认为所有这些都在单线程中运行(因为它们似乎要迎合Web开发人员),这也意味着即使多个事件排队调用您的处理程序,它们也会被阻塞,然后被忽略您在第一次调用后停止侦听器。 – cheeken
那好吧。我要去开车!谢谢您的帮助! – qwerty