Javascript 刷新为google maps API获取Co Ords的PHP

Javascript 刷新为google maps API获取Co Ords的PHP,javascript,php,jquery,ajax,google-maps,Javascript,Php,Jquery,Ajax,Google Maps,我正在使用谷歌地图API来显示上一次向我的网站提交表单的位置。因此,我从php文件中提取lon和lat值作为变量,但我需要脚本每5秒刷新一次,以便映射标记在不重新加载页面的情况下更新 以下是google api脚本: <script> function initialize() { var myLatlng = new google.maps.LatLng<?php require($DOCUMENT_ROOT . "php_includes/mob

我正在使用谷歌地图API来显示上一次向我的网站提交表单的位置。因此,我从php文件中提取lon和lat值作为变量,但我需要脚本每5秒刷新一次,以便映射标记在不重新加载页面的情况下更新

以下是google api脚本:

    <script>

      function initialize() {
  var myLatlng = new google.maps.LatLng<?php 
require($DOCUMENT_ROOT . "php_includes/mobile_loc.php");

?>;
  var mapOptions = {
    zoom: 15,
    center: myLatlng
  }
  var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

  var marker = new google.maps.Marker({
      position: myLatlng,
      map: map,
      title: 'Last Scan'
  });
}

google.maps.event.addDomListener(window, 'load', initialize);

</script>

函数初始化(){
var mylatng=new google.maps.LatLng;
变量映射选项={
缩放:15,
中心:myLatlng
}
var map=new google.maps.map(document.getElementById('map_canvas'),mapOptions);
var marker=new google.maps.marker({
职位:myLatlng,
地图:地图,
标题:“上次扫描”
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
下面是php文件:

    <?php 
include_once("php_includes/db_conx.php"); 

$sql = "SELECT * FROM patdub ORDER BY STR_TO_DATE(Timestamp, '%d/%m/%Y %H:%i:%s') DESC LIMIT 1"; 
$query = mysqli_query($db_conx, $sql); 
$row = mysqli_fetch_array($query);

$lon = $row['Lon'];
$lat = $row['Lat'];

echo "($lat, $lon)";

?>

如果要调用加载PHP脚本所在的文件,假设它在自己的文件中,您可以这样做,然后可以使用AJAX调用的返回来更新DOM。
您可以将AJAX调用封装在一个javascript循环中,如setInterval(),如下所示:

setInterval(function() {
    $.ajax({
        url: "php_script.php"
    }).done(function(return) {
        console.log(return);
    });
, 5000);
每5秒呼叫一次

要将其与您的谷歌功能结合(我不了解谷歌地图,因此这可能不是100%准确):


函数初始化(myLatlng){
myLatlng=myLatlng | |新建google.maps.LatLng;
变量映射选项={
缩放:15,
中心:myLatlng
}
var map=new google.maps.map(document.getElementById('map_canvas'),mapOptions);
var marker=new google.maps.marker({
职位:myLatlng,
地图:地图,
标题:“上次扫描”
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
setInterval(函数(){
$.ajax(函数(){
url:'php_script.php'
}.完成(功能(响应){
var latlong=响应;
初始化(latLong)
});
}, 5000)

您的代码中没有AJAX。您需要AJAX。说“我尝试了不同的AJAX方法”,然后不显示任何方法对于诊断它为什么不起作用不是很有用:)所以我会将javascript循环放在google api脚本之前?或者在不同的脚本标记中?谢谢你的回复,这很有帮助!我会把它放在GoogleAPI脚本之后,然后,当您从PHP函数得到返回时,调用GoogleAPI函数并传递数据。我现在将编辑我的答案来解释这一点。是的,这不起作用,一旦我添加了代码,就根本没有地图显示,我甚至尝试将间隔更改为30秒,并将响应变量更改为“var myLatlong”,但仍然没有:(好的,在我编辑答案之前,请尝试将您的第一个映射调用更改为:
google.maps.event.addDomListener(窗口,'load',initialize(null));
。可能不起作用,但只是一个理论。不,这也不起作用:(我注意到变量实际上是“myLatlng”虽然这可能是问题所在,但我尝试了使用和不使用新的DOM listener,但仍然没有乐趣!我确信解决方案非常简单。。
setInterval(function() {
    $.ajax({
        url: "php_script.php"
    }).done(function(return) {
        console.log(return);
    });
, 5000);
<script>

    function initialize(myLatlng) {
        myLatlng = myLatlng || new google.maps.LatLng<?php require($DOCUMENT_ROOT . "php_includes/mobile_loc.php");?>;
        var mapOptions = {
            zoom: 15,
            center: myLatlng
        }
        var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

        var marker = new google.maps.Marker({
            position: myLatlng,
            map: map,
            title: 'Last Scan'
        });
    }

    google.maps.event.addDomListener(window, 'load', initialize);

    setInterval(function() {
        $.ajax(function() {
            url: 'php_script.php'
        }.done(function(response) {
            var latlong = response;
            initialize(latLong)
        });
    }, 5000)

</script>