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

问题描述 投票:0回答:2

我有一个地理位置检查移动应用程序(用于路线跟踪),我需要能够为位置更新指定一个自定义的时间间隔,用户可以对其进行修改。我正在使用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秒?

javascript html5 geolocation navigator
2个回答
2
投票

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


0
投票

您能否更新您的小提琴。我也遇到同样的问题。我想每2分钟存储一次wacthPosition

© www.soinside.com 2019 - 2024. All rights reserved.