每分钟向服务器发送 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 坐标的主要内容,如果未能解决你的问题,请参考以下文章