Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以30秒的间隔存储用户地理位置_Javascript_Php_Jquery_Mysql_Google Maps - Fatal编程技术网

Javascript 以30秒的间隔存储用户地理位置

Javascript 以30秒的间隔存储用户地理位置,javascript,php,jquery,mysql,google-maps,Javascript,Php,Jquery,Mysql,Google Maps,我正试图找出如何重构代码,以便在30秒内将用户的地理位置发送到我的MySQL数据库 下面的代码仅在加载应用程序时或在刷新应用程序时存储用户在表中的地理位置,但不会在人员旅行时连续存储地理位置。我希望在30秒的突发时间内定期向服务器发送用户地理位置信息 我知道jquerysetInterval,并尝试将它嵌套在几个地方,但没有成功,因为javascript已经生锈了 任何转向都将不胜感激 我的表模式 heatmap.php 狐狸数 /*注意:谷歌地图需要HTTPS才能工作。它不适用于HTTP

我正试图找出如何重构代码,以便在30秒内将用户的地理位置发送到我的
MySQL
数据库

下面的代码仅在加载应用程序时或在刷新应用程序时存储用户在表中的地理位置,但不会在人员旅行时连续存储地理位置。我希望在30秒的突发时间内定期向服务器发送用户地理位置信息

我知道
jquery
setInterval,并尝试将它嵌套在几个地方,但没有成功,因为
javascript
已经生锈了

任何转向都将不胜感激

我的表模式

heatmap.php


狐狸数
/*注意:谷歌地图需要HTTPS才能工作。它不适用于HTTP AKA不安全源*/
#地图{
身高:100%;
}
html,
身体{
身高:100%;
宽度:100%;
保证金:0;
填充:0;
}
var映射,currentPositionMarker,映射;
函数初始化映射(){
map=new google.maps.map(document.getElementById('map'){
缩放:16,
});
}
函数locError(错误){
//如果无法找到当前位置,请告知用户
警报(“找不到当前位置!”);
}
//用户的当前位置
功能设置当前位置(pos){
currentPositionMarker=新的google.maps.Marker({
标签:{
颜色:'黑色',
fontWeight:'粗体',
文本:“CD”,
},
地图:地图,
职位:新google.maps.LatLng(
位置坐标纬度,
位置坐标经度,
),
标题:“当前职位”
});
var a=位置坐标纬度;
var b=位置坐标经度;
控制台日志(a,b);
//此ajax命令仅在应用程序从fresh加载或应用程序刷新时将lat和lang存储到db中。当用户标记更改地理位置时,它不会连续存储用户地理位置!!!
$.ajax({
键入:“获取”,
url:“personlocator.php”,
数据:{
a:a,
b:b
}
})
map.panTo(新的google.maps.LatLng)(
位置坐标纬度,
位置坐标经度
));
}//函数结束///////////////////////////
功能监视当前位置(pos){
var positionTimer=navigator.geolocation.watchPosition(
职能(职位){
设置标记位置(
当前位置标记,
位置
);
});
}
功能设置标记位置(标记,位置){
标记设置位置(
新google.maps.LatLng(
位置坐标纬度,
位置坐标经度)
);
}
函数initLocationProcedure(){
初始化映射();
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(setCurrentPosition,watchCurrentPosition,locError);
}否则{
//告诉用户浏览器是否不支持这个惊人的API
警报(“您的浏览器不支持地理位置API!”);
}
}

您可以像这样嵌套它:

function initLocationProcedure() {
  initializeMap();

  if (navigator.geolocation) {

    // Timer with setInterval
    var timer = setInterval( function() {
      navigator.geolocation.getCurrentPosition(setCurrentPosition, locError);
    }, 30000);

  } else {
    // tell the user if a browser doesn't support this amazing API
    alert("Your browser does not support the Geolocation API!");
  }
}

var timer=setInterval('setCurrentPosition',30000,pos)能否请您将我的代码更新到嵌套的位置。请检查我的回答谢谢,我将运行此程序并快速还原您的代码易受SQL注入攻击。你应该使用预先准备好的语句。我将jquery url和数据嵌套在哪里?或者我不需要??不需要,此编辑将计划每30秒执行一次代码Grafi抱歉,我一直在抱怨mate,这是我对此API感到困惑的事情之一,当然,它们需要是一个初始发送,在更新和设置之前执行并插入语句,因为您不能首先更新和设置。我想是这样的,这个例程似乎理所当然地认为数据库中已经存在一个具有正确ID的
用户
记录。您将在哪里执行初始插入,以及如何执行