2014-05-13 185 views
0

我想在每個時間間隔使用navigator.geolocation.watchPosition 獲取我的位置稍後,我想將這些座標存儲在xml文件中。HTML5和地理位置

問題是watchPosition函數沒有調用getLocation函數。

function trackCoords() 
    { 
     if (navigator.geolocation) 
     { 

      var options = { frequency: 3000 }; 
      watchID = navigator.geolocation.watchPosition(getLocation, locationFail, options); 
     } 


    } 



    function getLocation(position) { 
     alert(); 
     var latitude = position.coords.latitude; 
     var longitude = position.coords.longitude; 
     alert('latitude: ' + latitude + ' longitude: ' + longitude); 
     } 

    function locationFail() { 
    document.write('We did not get your location'); 
      } 

在此先感謝

回答

0

我覺得你不是要求trackCoords。瀏覽器是否要求您獲得地理定位權限?如果我在你的腳本的末尾添加trackCoords()它似乎爲我工作:

http://codepen.io/jonigiuro/pen/vCBsk

+0

我打電話trackCoords()在另一塊代碼至極的我認爲是無關緊要的。 $('#track')。click(trackCoords); 我測試過alert()和trackCoords()確實被調用,但代碼無法正常工作。 但是,當我在文檔的底部放置trackCoords()時,我的瀏覽器會要求許可進行地理定位。 – Beunzor

+0

JavaScript應該位於文檔的底部,就在關閉body標籤之前,否則您嘗試將點擊事件綁定到不存在的元素,在這種情況下爲$('#track')。click (trackCoords);頁面從上到下加載,所以當它到達這個cose時,#track元素還沒有在那裏。另一個解決方法是將代碼包裝到$(document).ready(function(){/ *您的代碼在這裏* /}),這將只在dom被加載時執行 –

+0

$('#track')。click (trackCoords); 已準備就緒。 我應該使用setTimeout跟蹤x秒後的座標嗎? 或者只有當你的位置發生變化時,錶盤纔會工作嗎? – Beunzor