我有以下功能:
function successFunction(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
var url= '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng;
console.log(url);
$.ajax({
type: 'get',
url: '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng,
success: function (msg) {
console.log("Location captured");
},
processData: false,
});
}
它的作用是发送已打开该特定页面(tab)的用户的当前地理定位。这是整个脚本:
<script type="text/javascript">
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successFunction);
} else {
alert('Parece que la Geolocalización, la cual se requiere para esta página, no está habilitado en su navegador. Por favor, utilice un navegador que lo soporta o active la opción.');
}
function successFunction(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
var url= '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng;
console.log(url);
$.ajax({
type: 'get',
url: '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng,
success: function (msg) {
console.log("Location captured");
},
processData: false,
});
}
</script>
糟糕的是它只在用户不断刷新页面时发送。我一直试图让它每秒循环,以便GEO实时发送并且可以跟踪用户(这是用于汽车地理定位)。有没有办法可以实时发送信息,或者我如何使SetInterval工作?这就是我所拥有的,但它不起作用:
window.setInterval(successFunction, 1000);
答案 0 :(得分:3)
这个怎么样?
setInterval(function(){
navigator.geolocation.getCurrentPosition(successFunction);
}, 1000);
答案 1 :(得分:1)
你必须添加一个无关的回调来用一些参数调用实际函数。
if (navigator.geolocation) {
window.setInterval(function(){
navigator.geolocation.getCurrentPosition(successFunction);
}, 1000);
} else {
alert('Parece que la Geolocalización, la cual se requiere para esta página, no está habilitado en su navegador. Por favor, utilice un navegador que lo soporta o active la opción.');
}
function successFunction(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
var url= '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng;
console.log(url);
$.ajax({
type: 'get',
url: '<?php echo url("/") ?>/provider/location/set?lat='+lat+'&lng='+lng,
success: function (msg) {
console.log("Location captured");
},
processData: false,
});
}