Javascript 我的谷歌地图赢了';Don’’我不想显示每一个标记
大家好, 我需要用我们客户的标记制作一张谷歌地图 然而,我在学校的时候还不擅长编程,也不太擅长编程:( 然而,我的问题是,我能在地图上找到一些标记,但不是所有的,而且显示的数量总是不同的。我的工作地址不是以纬度和长度为基础的 这是我的剧本Javascript 我的谷歌地图赢了';Don’’我不想显示每一个标记,javascript,marker,Javascript,Marker,大家好, 我需要用我们客户的标记制作一张谷歌地图 然而,我在学校的时候还不擅长编程,也不太擅长编程:( 然而,我的问题是,我能在地图上找到一些标记,但不是所有的,而且显示的数量总是不同的。我的工作地址不是以纬度和长度为基础的 这是我的剧本 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjU0EJWnWPMv7oQ-jjS7dYxTPZYElJSBeBUeMSX5xXgq6lLjHthSAk20WnZ_iuuzhMt60X_ukms-AUg"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
//load Google Map
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
var geocoder = new GClientGeocoder();
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
//create randomnumber to prevent caching and retrieve xml file
//data.xml vervangen door weg naar .xml bestand
GDownloadUrl("data.xml", function(data, responseCode) {
var xml = GXml.parse(data);
//store markers in markers array
var markers = xml.documentElement.getElementsByTagName("marker");
//while loop ipv for loop
var i = 0
do
{
var address = markers[i].getAttribute("address");
var html = markers[i].getAttribute("html");
showAddress(map,geocoder,address,html);
timer();
}
while (i <= 18);
function timer()
{
i++
setTimeout("timer()",1000);
}
//Create marker and set up event window
function createMarker(point,html){
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(html);
});
return marker;
}
//showAddress
function showAddress(map,geocoder,address,html) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " niet gevonden");
} else {
map.setCenter(point, 12);
var marker = createMarker(point,html+'<br/><br/>'+address);
map.addOverlay(marker);
}
}
);
}
}
); //close GDownloadUrl
} //close GBrowserIsCompatible
} //close load
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 1000px; height: 700px"></div>
</body>
</html>
GoogleMapsJavaScriptAPI示例
//
这可能是由于Google API限制了您可以进行的查询数量。如果您过快地向其询问地址位置,则在最初几次请求后,它将拒绝您
我看到您已经尝试使用timer()
函数来解决这个问题,但是您编写它的方式实际上不会在循环时延迟(Javascript将设置计时器,然后愉快地继续循环的下一次迭代)。您需要做的是将对API的调用带到由setTimeout
调用的代码中,如下所示:
function placeMarker(i) {
var address = markers[i].getAttribute("address"),
html = markers[i].getAttribute("html");
showAddress(map,geocoder,address,html);
if (++i <= 18) {
setTimeout(
function() {
placeMarker(i);
},
1000
);
}
}
placeMarker(0);
函数placeMarker(i){
var address=markers[i].getAttribute(“地址”),
html=markers[i].getAttribute(“html”);
showAddress(地图、地理编码器、地址、html);
如果(++i thx有效:D非常感谢你最近三天一直在忙这个问题:PNo问题。我花了很长时间才弄清楚我第一次遇到它!有没有办法加快速度?因为我需要在那里安装6k标记,这样最快的速度大约是20分钟xD