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

Posted

技术标签:

【中文标题】每分钟向服务器发送 gps 坐标【英文标题】:Send gps coordinates to server every minute 【发布时间】: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');

【问题讨论】:

【参考方案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 分钟发送一次数据会很快给电池充电吗?

以上是关于每分钟向服务器发送 gps 坐标的主要内容,如果未能解决你的问题,请参考以下文章

将 GPS 坐标发送到服务器的最佳方式?

如何将 GPS 坐标发送到网络服务器?

Android:获取 GPS 坐标并将其发送到服务器的服务

停止发送 GPS 坐标 Android

即使应用程序关闭,也每 5 分钟向服务器发送纬度和经度

可以连续轮询 iPhone 获取 GPS 坐标吗?