【问题标题】:Google Maps API Clustering nothing no mapGoogle Maps API Clustering 什么都没有 没有地图
【发布时间】:2014-02-24 05:17:57
【问题描述】:

我已经为此苦苦思索了好几个小时,但似乎无法让它发挥作用。当此代码运行时,地图上没有显示任何内容,我已确认标记列表数组已填充到 DOM 中。虽然地图上没有显示任何内容。任何帮助都会很棒!谢谢!

    <!DOCTYPE html >
   <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>Marker Cluster Test</title>
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map { height: 100% }
    </style>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer_compiled.js"></script>
    <script type="text/javascript">
    //<![CDATA[
        function initialize() {
      var center = new google.maps.LatLng(38.860479, -104.771461);
      var myOptions = {
        center: center,
        zoom: 12,
        mapTypeId: google.maps.MapTypeId.ROADMAP
      };
      var map = new google.maps.Map(document.getElementById('map'), myOptions);

      var markerlist = [];
    downloadUrl("phpsqlajax_genxml.php", function(data) {;
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
            var type = markers[i].getAttribute("type");
            var vehid = markers[i].getAttribute("vehid");
            var point = new google.maps.LatLng(
                markers[i].getAttribute("lat"),
                markers[i].getAttribute("lng"));
            var html = "<b>VehID:</b>"+vehid;
            var marker = new google.maps.Marker({position: point,});
          markerlist.push(marker);
        }
      });
      var mc = new MarkerClusterer(map, markerlist);
    }


    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);
      request.send(null);
    }

    function doNothing(){
    }
   google.maps.event.addDomListener(window, 'load', initialize);
   </script>

   </head>

   <body onload=initialize();>
    <div id="map"/>
   </body>

   </html>

【问题讨论】:

    标签: google-maps-api-3 google-maps-markers


    【解决方案1】:

    你在填充markerlist之前填充markerclusterer,你需要在downloadUrl回调函数中完成:

    downloadUrl("phpsqlajax_genxml.php", function(data) {;
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
            var type = markers[i].getAttribute("type");
            var vehid = markers[i].getAttribute("vehid");
            var point = new google.maps.LatLng(
                markers[i].getAttribute("lat"),
                markers[i].getAttribute("lng"));
            var html = "<b>VehID:</b>"+vehid;
            var marker = new google.maps.Marker({position: point,});
          markerlist.push(marker);
        }
        var mc = new MarkerClusterer(map, markerlist);
      });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-26
      相关资源
      最近更新 更多