我有一个获取用户纬度和经度的代码。这是我用来获得lat和long的代码:
function showlocation() {
navigator.geolocation.watchPosition(callback);
}
function callback(position) {
document.getElementById('latitude').innerHTML = position.coords.latitude;
document.getElementById('longitude').innerHTML = position.coords.longitude;
}
我想每隔2秒插入一次用户的lat和。
答案 0 :(得分:0)
以下是一个工作示例,您需要使用它来满足您的需求:
首先:HTML / JavaScript / jQuery
<强>的index.html 强>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js">
</script>
</head>
<body>
<script>
window.setInterval(function() {
showlocation();
}
, 2000); // 2000==2 seconds
function showlocation() {
navigator.geolocation.watchPosition(callback);
}
function callback(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
document.getElementById('latitude').innerHTML = lat;
document.getElementById('longitude').innerHTML = lon;
$.post('processor.php', 'lat=' + lat + '&lon=' + lon, function(response) {
//alert(response);
}
);;
}
</script>
Latitude: <span id="latitude"></span>
<br/>
Longitude: <span id="longitude"></span>
</body>
</html>
第二
<强> processor.php 强>
<?php
$lat=$_POST["lat"];
$lon=$_POST["lon"];
// insert into database
$conn = mysqli_connect("localhost","user","pass","database");
$sql="INSERT INTO location_tbl (latitude, longitude) VALUES ('$lat','$lon')";
// You might need some conditional insert here and for every 2 seconds you will get lots of records in database!
mysqli_query($conn,$sql) or die(mysqli_error($conn));
// return 'done';
?>
This stack-overflow post could be a good reference
请注意,它需要用户权限才能共享位置,否则将无法正常工作。
提供的解决方案仅用于教育目的 ...
还有许多其他实用的方法可以实现这个问题的目标。
为什么不使用某些PHP IP地理位置类/ API,并在更改后重新记录经度,纬度?