【问题标题】:Send gps coordinates to server every minute每分钟向服务器发送 gps 坐标
【发布时间】:2012-05-23 07:00:50
【问题描述】:

我很想用 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');
}

【问题讨论】:

    标签: jquery-mobile cordova geolocation gps


    【解决方案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

    【讨论】:

    • 我尝试使用该代码,但它似乎没有更新 mysql。如果看起来正确,你能看看我编辑的代码吗?
    • 首先,尝试隔离问题。检查数据是否返回到你的成功 javascript 函数,以了解是 js 还是 php 问题。
    • @Oscar 每 4 分钟发送一次数据会很快给电池充电吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多