2012-10-03 95 views
0

我正在开发一个项目,我需要绘制一张超过500点的地图。我的代码工作得很好,达到了250分。但是当我解析出的XML文件中有500个坐标时,没有任何点最终显示在地图上。Google API - 映射500坐标

我想有一种导致它失败的节流,但我无法弄清楚如何在代码中包含它。

任何想法?


locations.xml(略)

<markers> 
    <marker name="" address="800 Occidental Ave S Seattle, WA 98134" lat="47.595091" lng="-122.333229" type="location" /> 
    <marker name="" address="Bridge Street, City of Westminster, SW1A 0AA, United Kingdom" lat="51.499100" lng="-0.121955" type="location" /> 
</markers> 

map.html

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8"/> 

<script src="http://maps.google.com/maps/api/js?sensor=false" 
     type="text/javascript"></script> 
<script type="text/javascript"> 

var customIcons = { 
    location: { 
    icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png', 
    shadow: 'http://labs.google.com/ridefinder/images/mm_20_shadow.png' 
    } 
}; 

function load() { 
    var map = new google.maps.Map(document.getElementById("map"), { 
    center: new google.maps.LatLng(27.2500, 2.5200), 
      // world (27.2500, 2.5200), zoom 2 
      // usa (39.6791686, -95.5335914), zoom 4 
    zoom: 2, 
    mapTypeId: 'roadmap' 
    }); 
    var infoWindow = new google.maps.InfoWindow; 

    // Change this depending on the name of your PHP file 
    downloadUrl("locations.xml", function(data) { 
    var xml = data.responseXML; 
    var markers = xml.documentElement.getElementsByTagName("marker"); 
    for (var i = 0; i < markers.length; i++) { 
     var name = markers[i].getAttribute("name"); 
     var address = markers[i].getAttribute("address"); 
     var type = markers[i].getAttribute("type"); 
     var point = new google.maps.LatLng(
      parseFloat(markers[i].getAttribute("lat")), 
      parseFloat(markers[i].getAttribute("lng"))); 
     var html = "<b>" + name + "</b> <br/>" + address; 
     var icon = customIcons[type] || {}; 
     var marker = new google.maps.Marker({ 
     map: map, 
     position: point, 
     icon: icon.icon, 
     shadow: icon.shadow 
     }); 
     //bindInfoWindow(marker, map, infoWindow, html); 
    } 
    }); 
} 

function bindInfoWindow(marker, map, infoWindow, html) { 
    google.maps.event.addListener(marker, 'click', function() { 
    //infoWindow.setContent(html); 
    //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); 
    request.send(null); 
} 

function doNothing() {} 

</script> 
</head> 

<body onLoad="load()"> 
    <div id="map" style="width: 1050px; height: 550px"></div> 
</body> 
</html> 
+1

您如何期望我们用xml文件中的2个条目来复制问题?你说它适用于此。我怀疑你的数据在第250个条目附近有问题。 – geocodezip

+0

谢谢,谢谢,谢谢!原来,这与使用Excel创建公式来生成locations.xml行有关。我需要四舍五入到小数点,然后它开始正常工作。 – Josh

回答

0

我的猜测是有一个与你的数据有问题的地方周围250条目。