【问题标题】:Google Map markers are not displayed (lat, lng values and other information is loaded from an xml file)不显示谷歌地图标记(lat、lng 值和其他信息从 xml 文件加载)
【发布时间】:2017-02-22 14:54:11
【问题描述】:

我正在研究这里给出的示例:- https://developers.google.com/maps/documentation/javascript/mysql-to-maps 我在“加载 xml 文件”这一点上。我已将数据库与 php 链接以形成给定数据的 xml 文件(File.xml),但我不知道为什么它不起作用。我尝试了许多其他示例。但无法仅弄清楚“如何加载 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>

【问题讨论】:

    标签: javascript php html xml google-maps


    【解决方案1】:

    你刚刚忘记复制downloadUrl函数的最后一行:request.send(null);

    【讨论】:

    • 是的,我两种方式都做了。我的网络浏览器只是事先缓存了我的非工作代码的结果。我只是再次复制粘贴它,它工作了
    • 谢谢@nicolastorre:)
    猜你喜欢
    • 1970-01-01
    • 2020-08-13
    • 2020-12-30
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多