2017-02-22 27 views
-2

Я работаю на примере, приведенном здесь: - https://developers.google.com/maps/documentation/javascript/mysql-to-maps Я нахожусь в точке «Загрузка xml-файла». Я связал базу данных с php, чтобы сформировать XML-файл (File.xml) данных, но я не знаю, почему он не работает. Я попробовал много других примеров. Но не мог просто определить часть «как загрузить xml-файл», поскольку никакой код не работал, и в консоли нет ошибки.Маркеры Google Map не отображаются (значения lat, lng и другая информация загружаются из файла xml)

<script> 
       var customLabel = { 
      restaurant: { 
       label: 'R' 
      }, 
      bar: { 
       label: 'B' 
      } 
      }; 

     function initMap() { 
     var map = new google.maps.Map(document.getElementById('map'), { 
      center: new google.maps.LatLng(-33.863276, 151.207977), 
      zoom: 12 
     }); 
     var infoWindow = new google.maps.InfoWindow; 

      // Change this depending on the name of your PHP or XML file 
      downloadUrl('File.xml', function(data) { 
      var xml = data.responseXML; 
      var markers = xml.documentElement.getElementsByTagName('marker'); 
      Array.prototype.forEach.call(markers, function(markerElem) { 
       var name = markerElem.getAttribute('name'); 
       var address = markerElem.getAttribute('address'); 
       var type = markerElem.getAttribute('type'); 
       var point = new google.maps.LatLng(
        parseFloat(markerElem.getAttribute('lat')), 
        parseFloat(markerElem.getAttribute('lng'))); 

       var infowincontent = document.createElement('div'); 
       var strong = document.createElement('strong'); 
       strong.textContent = name 
       infowincontent.appendChild(strong); 
       infowincontent.appendChild(document.createElement('br')); 

       var text = document.createElement('text'); 
       text.textContent = address 
       infowincontent.appendChild(text); 
       var icon = customLabel[type] || {}; 
       var marker = new google.maps.Marker({ 
       map: map, 
       position: point, 
       label: icon.label 
       }); 
       marker.addListener('click', function() { 
       infoWindow.setContent(infowincontent); 
       infoWindow.open(map, marker); 
       }); 
      }); 
      }); 
     } 



     function downloadUrl(url, callback) { 
     var request = window.ActiveXObject ? 
      new ActiveXObject('Microsoft.XMLHTTP') : 
      new XMLHttpRequest; 

     request.onreadystatechange = function() { 
      if (request.readyState == 4) { 
      request.onreadystatechange = doNothing; 
      callback(request, request.status); 
      } 
     }; 

     request.open('GET', url, true); 
     } 

     function doNothing() {} 
    </script> 

ответ

0

Вы только что забыли скопировать последнюю строку функции downloadUrl: request.send (null);

+0

Yead Я сделал оба пути. Мой веб-браузер просто кэшировал результат моего нерабочего кода заранее. Я только что скопировал его снова, и он сработал – Kora

+0

Спасибо @nicolastorre :) – Kora