Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的谷歌地图赢了';Don’’我不想显示每一个标记_Javascript_Marker - Fatal编程技术网

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