地理位置自定义更新间隔(30 秒)

Posted

技术标签:

【中文标题】地理位置自定义更新间隔(30 秒)【英文标题】:Geo-Location Custom Update Interval (30 seconds) 【发布时间】:2014-12-13 15:08:28 【问题描述】:

我有一个地理位置检查移动应用程序(用于路线跟踪),我需要能够为用户可以修改的位置更新指定自定义时间间隔。我正在使用 watchPosition() 函数,因为准确性很重要,而 getCurrentPosition() 似乎不能很好地工作。但是,我仍然希望用户能够根据自己的喜好自定义更新间隔。

到目前为止,这是我的代码的粗略表示:http://jsfiddle.net/ppyordanov/taz4g5t0/5/。

html:

<div id="result"></div>

JS:

var latitude, longitude, accuracy;
function setGeolocation() 
    var geolocation = window.navigator.geolocation.watchPosition( 
        function ( position ) 
            latitude = position.coords.latitude;
            longitude = position.coords.longitude;
            accuracy = position.coords.accuracy;
            document.getElementById( 'result' ).innerHTML += 
                  'lat: ' + latitude + ', '
                + 'lng: ' + longitude + ', '
                + 'accuracy: ' + accuracy + '<br />';
        , function ()  
            /*error*/ 
        , 
            maximumAge: 250, 
            enableHighAccuracy: true
         
    );

;

setGeolocation();

window.setTimeout( function () 
        setGeolocation();
    , 
    30000 //check every 30 seconds
);

我可以使用 setTimeout() 来操纵时间间隔,但它似乎对输出没有任何影响。它大约每秒更新一次。如何将其增加到 30 秒?

【问题讨论】:

【参考方案1】:

我不是每隔n 秒调用一次setGeolocation();,而是将位置保存在window.navigator.geolocation.watchPosition() 调用中,然后通过setInterval() 函数在单独的函数中更新它。

【讨论】:

以上是关于地理位置自定义更新间隔(30 秒)的主要内容,如果未能解决你的问题,请参考以下文章

位置更新的时间间隔更短

使用 Fused 提供程序更新位置的间隔

固定间隔后获取纬度位置

如何设置每 10 秒刷新一次位置的间隔?

如何在 Qslider 上的自定义位置放置刻度?

如何在ios中每n秒获取一次位置更新