Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 标记在Google Maps API中不起作用_Javascript_Html_Google Maps_Google Maps Api 3_Google Maps Markers - Fatal编程技术网

Javascript 标记在Google Maps API中不起作用

Javascript 标记在Google Maps API中不起作用,javascript,html,google-maps,google-maps-api-3,google-maps-markers,Javascript,Html,Google Maps,Google Maps Api 3,Google Maps Markers,我是谷歌地图API的新手。我编写了一个程序,将根据where.js中给出的纬度和经度在所有点上放置标记。 它加载地图,但未放置任何标记。我不明白我做错了什么 HTML代码如下所示: <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <title>Markets of Kolka

我是谷歌地图API的新手。我编写了一个程序,将根据where.js中给出的纬度和经度在所有点上放置标记。 它加载地图,但未放置任何标记。我不明白我做错了什么

HTML代码如下所示:

<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Markets of Kolkata</title>
<link href="http://google-developers.appspot.com/maps/documentation/javascript/examples/default.css" rel="stylesheet">

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

  function initialize() {
    //alert("To see the title of a marker, hover over the marker but don't click.");
    var myLatlng = new google.maps.LatLng(22.39961,88.101350)
    var mapOptions = {
      zoom: 3,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);

    i = 0;
    var markers = [];
    for ( pos in myData ) {
        i = i + 1;
        var row = myData[pos];
        window.console && console.log(row);
        // if ( i < 3 ) { alert(row); }
        var newLatlng = new google.maps.LatLng(row[0], row[1]);
        var marker = new google.maps.Marker({
            position: newLatlng,
            map: map,
            title: row[3]
        });
        markers.push(marker);
    }
  }
</script>

</head>
<body onload="initialize()">
<div id="map_canvas" style="height: 600px"></div>
<p>
<b>Developed By </b> 
<a href="http://www.linkedin.com/in/arnab-chakravarty-8a329111b?
trk=nav_responsive_tab_profile"><b>Arnab Chakravarty</b></a>.
</p>
</body>
</html>
更正此行: //在for循环中添加此行: markers.setMapmap; markers.pushmarker

还要检查这个链接:它没有打开


如果有任何错误,请检查console.log:很乐意帮助您

Javascript数组的索引为零。您的代码引用它们,就好像它们是一个索引

i、 e.你的代码:

i = 0;
var markers = [];
for ( pos in myData ) {
    i = i + 1;
    var row = myData[pos];
    ...
}
您指的是myData[1]第二项,myData[2]第三项,等等,直到并包括myData[6]。这将是你标记数组中的第7项,除了你只有6项。因此,您可能会在检查控制台时遇到JS错误,从而根本无法加载标记

只要把i=i+1;在你的循环结束时的线。或更改循环样式,例如

for (var pos = 0; pos < myData.length; pos++) {
    var row = myData[pos];
    window.console && console.log(row);
    var newLatlng = new google.maps.LatLng(row[0], row[1]);
    var marker = new google.maps.Marker({
        position: newLatlng,
        map: map,
        title: row[3]
    });
    markers.push(marker);
}

如何调用初始化函数?您的浏览器开发工具控制台中是否有任何错误?id为的div在哪里?您的一些代码可以工作,但有一些错误。这是完整的HTML代码。@JaromandaXyeah,仍然是http://google-maps-utility-library-v3.googlecode.com 404错误-因此,对代码的其余部分没有多大信心事实上,当我的数据真的是一个2D数组时,你真的把它当作一个对象来处理;在工作线的末端放置标记。但当我将鼠标悬停在标记上时,标记的标题不会显示。@ArnabC将标题:第[3]行更改为标题:第[2]行,但我希望第四项是标记的标题。为什么不把第[3]行作为标记呢?没关系。问题解决了。谢谢你的帮助,邓肯。
for (var pos = 0; pos < myData.length; pos++) {
    var row = myData[pos];
    window.console && console.log(row);
    var newLatlng = new google.maps.LatLng(row[0], row[1]);
    var marker = new google.maps.Marker({
        position: newLatlng,
        map: map,
        title: row[3]
    });
    markers.push(marker);
}