每分钟向服务器发送gps坐标

时间:2012-05-23 07:00:50

标签: jquery-mobile cordova geolocation gps

我正在使用jQueryMobile构建PhoneGap应用程序。在我的应用程序中,我需要每4分钟向用户发送一个用户当前的地理定位GPS坐标。我怎样才能做到这一点?

这是我现在使用的代码,但它不会发送任何数据。如何修改它以使其工作?

document.addEventListener("deviceready", onDeviceReady, false);

var watchID = null;

// PhoneGap is ready
//
function onDeviceReady() {
    // Update every 4 minute
    var options = { maximumAge: 240000, timeout: 5000, enableHighAccuracy: true };
    watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);
}

// onSuccess Geolocation
//
function onSuccess(position) {
   var lat = Position.coords.latitude;
    var lng = Position.coords.longitude;


    jQuery.ajax({
        type: "POST", 
        url:  serviceURL+"locationUpdate.php", 
        data: 'x='+lng+'&y='+lat,
        cache: false
    });
}

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
}

1 个答案:

答案 0 :(得分:-1)

不要调用setInterval,而是让phonegap为你做这件事。

// onSuccess Callback
//   This method accepts a `Position` object, which contains the current GPS coordinates
//
function onSuccess(position) {
    var element = document.getElementById('geolocation');
    element.innerHTML = 'Latitude: '  + position.coords.latitude      + '<br />' +
                    'Longitude: ' + position.coords.longitude     + '<br />' +
                    '<hr />'      + element.innerHTML;
}

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
      'message: ' + error.message + '\n');
}

// Options: retrieve the location every 3 seconds
//
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { frequency: 3000 });

http://docs.phonegap.com/en/1.0.0/phonegap_geolocation_geolocation.md.html#geolocation.watchPosition