2012-06-06 127 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