Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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 使用ajax和setTimeOut更新地图标记_Javascript_Php_Jquery_Ajax_Google Maps Api 3 - Fatal编程技术网

Javascript 使用ajax和setTimeOut更新地图标记

Javascript 使用ajax和setTimeOut更新地图标记,javascript,php,jquery,ajax,google-maps-api-3,Javascript,Php,Jquery,Ajax,Google Maps Api 3,我有一个googlemapapi设置,它为驱动程序(多个)位置设置了标记,尽管我很难通过ajax/php每隔x秒更新一次标记 这就是我目前所拥有的。有人能看出我做错了什么吗 我已经搜索了许多示例和教程。我还没找到我需要的东西 更新:Ajax确实成功地从PHP抓取数据,只是没有移动标记。。。也许数据的格式不对 更新:包含init()代码 PHP代码: $sqld = "SELECT * FROM rwxoq_Drivers"; $resultd = mysqli_query($co

我有一个
googlemapapi
设置,它为
驱动程序(多个)
位置设置了标记,尽管我很难通过
ajax/php每隔x秒更新一次标记

这就是我目前所拥有的。有人能看出我做错了什么吗

我已经搜索了许多示例和教程。我还没找到我需要的东西

更新:Ajax确实成功地从PHP抓取数据,只是没有移动标记。。。也许数据的格式不对

更新:包含init()代码

PHP代码:

    $sqld = "SELECT * FROM rwxoq_Drivers";
    $resultd = mysqli_query($conn, $sqld);
    while($rowd = mysqli_fetch_assoc($resultd)) {
    list($time, $lat, $long) = explode("*", $rowd{LastGPS});
    if ($time > (time() - 600)) {

            $sqlu = "SELECT * FROM rwxoq_users WHERE username = '".$rowd{Driver_ID}."'";
            $resultu = mysqli_query($conn, $sqlu);
            while($rowu = mysqli_fetch_assoc($resultu)) {

                    $driver_id = $rowd{Driver_ID};
                    $driver_name = $rowu{name};
                    $driver_contact = $rowd{Phone};
                    $dir = "/var/www/autoflora_net/driver/profile/";
//echo $dir . $driver_id.'/png';
                    if (file_exists($dir . $driver_id.'.png')) {
                            $driver_img = '/driver/profile/'.$driver_id.'.png';
                    } else {
                            $driver_img = '/driver/profile/noimage.png';
                    }

                    $count++;
                    if ($count > 1) echo ", ";

                    echo '["'.$driver_id.'", "'.$driver_name.'", "'.$driver_contact.'", "'.$driver_img.'", "'.$lat.'", "'.$long.'"]';
            }
    }
}
JS代码:

            function initialize() {
    var options = {
     componentRestrictions: {country: "au"}
    };
                    directionsDisplay = new google.maps.DirectionsRenderer();
                    var melbourne = new google.maps.LatLng(-31.953512, 115.857048);
                    var myOptions = {
                            zoom:12,
                            mapTypeId: google.maps.MapTypeId.ROADMAP,
                            center: melbourne
                    }

                    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
                    directionsDisplay.setMap(map);
geocoder = new google.maps.Geocoder();

 for (d = 0; d < drivers.length; d++) {
    drivermarkers(drivers, d);
//usleep(1000000);
  }

 for (i = 0; i < locations.length; i++) {
     geocodeAddress(locations, i);
 //usleep(1000000);
  }

            }


function fetchDrivers (){

var markers = [];

$.ajax({
    url:    "driver/drivergps.php",
    type : 'GET',
    dataType: 'text',
    success : function(data) {

     // Loop through our array of markers & place each one on the map  
        for( i = 0; i < data.length; i++ ) {
            var myLatlng = new google.maps.LatLng(data[i][4],data[i][5]);
            var marker = new google.maps.Marker({
                  position: myLatlng,
                  map: map,
                  title: 'Hello World!'
              }); /* <----- AT THIS POINT, MARKER IS CREATED AND PLACED ON THE MAP BY SETTING "map" PROPERTY */
           markers.push(marker); /* <----- HERE YOU ARE STORING THEM, AND YOU CAN ACCESS THEM LATER IN YOUR FUNCTION */

        }
console.log(data);
    }
    ,
    error: function(){
        /// traiter les erreur
    },
    async : true
});

//window.setTimeout(fetchDrivers(), 10000);


}

window.setTimeout(fetchDrivers(), 10000);

function drivermarkers(drivers, d) {
  var id = drivers[d][0];
  var name = drivers[d][1];
 var contact = drivers[d][2];
 var img = drivers[d][3];
 var lat = drivers[d][4];
 var long = drivers[d][5];

   var drivermarker = new google.maps.Marker({
      label: id,
      icon: '/images/Furgoneta.png',
      map: map,
      position: new google.maps.LatLng(drivers[d][4], drivers[d][5]),
      title: name,
      animation: google.maps.Animation.DROP,
    })
   infoWindow(drivermarker, map, id, name, img);


  bounds.extend(drivermarker.getPosition());
    map.fitBounds(bounds);

}
函数初始化(){
变量选项={
组成部分限制:{国家:“非盟”}
};
directionsDisplay=new google.maps.DirectionsRenderer();
var melbourne=new google.maps.LatLng(-31.953512115.857048);
变量myOptions={
缩放:12,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:墨尔本
}
map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
方向显示.setMap(地图);
geocoder=新的google.maps.geocoder();
对于(d=0;d})试试这个:setTimeout(fetchDrivers,10000);不确定它是否解决了所有问题,但这必须是doneThanks。这就是“window.setTimeout(fetchDrivers(),10000);”doesHow你正在初始化
映射吗?
?请提供一个例子来说明这个问题。更新的init函数有人有什么想法吗??