每分钟向服务器发送一次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');
}

与其调用 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

最新更新