Google API автообновление контента infowindow

194
07 ноября 2018, 04:30

Народ, помогите пожалуйста... Уже очень долго пытаюсь реализовать автообновление контента инфоокна, но никак ничего не выходит Вот код создания карты:

<div id="map" style=" position: absolute; margin: auto height: 80%; width: 100%">
<script>  
    function pinSymbol(color) {
      return {
        path: 'M 0,0 C -2,-20 -10,-22 -10,-30 A 10,10 0 1,1 10,-30 C 10,-22 2,-20 0,0 z M -2,-30 a 2,2 0 1,1 4,0 2,2 0 1,1 -4,0',
        fillColor: color,
        fillOpacity: 1,
        strokeColor: '#000',
        strokeWeight: 2,
        scale: 1,
      };
    }    
    function initMap() {
        var map = new google.maps.Map(document.getElementById('map'), {
          center: new google.maps.LatLng(55.8685204,37.6388706),
          zoom: 14,
          zoomControl: true,
          zoomControlOptions: {
            position: google.maps.ControlPosition.RIGHT_CENTER
          },
          mapTypeControl: false,
          streetViewControl: false,
          styles: [
            {
             featureType: 'poi',
             stylers: [{visibility: 'off'}]
            },
            {
             featureType: 'transit',
             elementType: 'labels.icon',
             stylers: [{visibility: 'off'}]
            }
          ]
        });
        var markers_parking = [];
        var infoWindow_parking = new google.maps.InfoWindow();
        downloadUrl('file.php', function(data) {
            var xml = data.responseXML;
            var markers1 = xml.documentElement.getElementsByTagName('marker');
            Array.prototype.forEach.call(markers1, function(markerElem) {
                var timeStamp1 = markerElem.getAttribute('timeStamp');
                var idPark = markerElem.getAttribute('idPark');
                var quantity1 = markerElem.getAttribute('quantity');
                var total1 = markerElem.getAttribute('total');

                if (idPark = '0101') {
                    var point1 = {lat: 55.871216 ,lng: 37.646862};
                };

                var free = total1 - quantity1;
                var infowincontent_parking = document.createElement('div');
                var strong1 = document.createElement('strong');
                strong1.textContent = 'Парковка №' + idPark;
                infowincontent_parking.appendChild(strong1);
                infowincontent_parking.appendChild(document.createElement('br'));
                var text1 = document.createElement('text');
                text1.textContent = 'Количество свободных парковочных мест: ' + free + '/' + total1;
                infowincontent_parking.appendChild(text1);

                infowincontent_parking.appendChild(document.createElement('br'));
                var data1 = document.createElement('text');
                data1.textContent = 'Информация за: ' + timeStamp1;
                infowincontent_parking.appendChild(data1);
                //var icon = customIcons[ntWorking] || {};
                if (free/total1<=0.5) {
                    var color1 = '#f00';
                };
                if(free/total1>=0.8) {
                    color1 = '#0f0';
                };
                if (free/total1>0.5 && free/total1<0.8) {
                    color1 = '#ff0'; 
                };

                var marker_parking = new google.maps.Marker({
                    map: map,
                    position: point1,
                    icon: pinSymbol(color1),
                    category: 'parking'
                });
                marker_parking.addListener('click', function() {
                    infoWindow_parking.setContent(infowincontent_parking);
                    infoWindow_parking.open(map, marker_parking);
                });

                map.markers_parking.push(marker_parking);
            });
            var options = {
                imagePath: 'http://www.enprotect.ru/smct/for_clusters/pics/m'
            };
            var markerCluster1 = new MarkerClusterer(map, markers_parking, options);
         });
    }
    function downloadUrl(url, callback) {
       var request = window.ActiveXObject ?
          new ActiveXObject('getinfo.php') :
          new XMLHttpRequest;
       request.onreadystatechange = function() {
          if (request.readyState == 4) {
            request.onreadystatechange = doNothing;
            callback(request, request.status);
          }
       };
       request.open('GET', url, true);
       request.send(null);
    }
</script>

И php (file.php):

    <?php
require("about_db.php");
// Start XML file, create parent node
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
// Opens a connection to a MySQL server
$connection=mysql_connect ($server, $username, $password);
if (!$connection) {  die('Not connected : ' . mysql_error());}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = "SELECT * FROM arduino_parking ORDER BY `timeStamp` DESC LIMIT 1";  //WHERE 1
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  // Add to XML document node
  $node = $dom->createElement("marker");
  $newnode = $parnode->appendChild($node);
  $newnode->setAttribute("timeStamp",$row['timeStamp']);
  $newnode->setAttribute("idPark",$row['idPark']);
  $newnode->setAttribute("quantity", $row['quantity']);
  $newnode->setAttribute("total", $row['total']);
}
echo $dom->saveXML();
?>

Помогите пж, а то уже застрелиться хочется от такого количества js в моей жизни..

READ ALSO
помогите с кодом в javascript [закрыт]

помогите с кодом в javascript [закрыт]

смотрю видеокурс "уроки программирования" от loftblog, тема - циклыСтолкнулся с проблемой - полностью переписываю сам код, как на видео

192
Нужно заменить регистр буквы в javascript

Нужно заменить регистр буквы в javascript

Не работает смена регистра при вводеВ чем может быть ошибка?

159
Не могу послать локальный запрос из моего js файла в node js оба на моем компе

Не могу послать локальный запрос из моего js файла в node js оба на моем компе

Не могу послать локальный запрос из моего js файла в node js оба на моем компе , вот как я это делаю вот node js

172