0

我对 gmaps 还很陌生,而且我使用的是 v2,因为我在 v3 中没有找到搜索功能。

我有一组数据要循环遍历并将标记放在地图上 =)

这似乎很容易,但我根本无法让它与 v2 一起工作......

这是我的数组格式和代码的样子:

function createMarkers(myLatLng,html) {
  var marker = new GMarker(myLatLng, markerOptions);
  GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
}


var locations = [
  ["Bondi Beach",-33.890542,151.274856],
  ["Coogee Beach",-33.923036,151.259052],
  ["Cronulla Beach",-34.028249,151.157507],
  ["Manly Beach",-33.80010128657071,151.28747820854187],
  ["Maroubra Beach",-33.950198,151.259302]
];


for (var i = 0; i < location.length; i++) {
   var locations = locations[i];
   var myLatLng = new GLatLng(locations[1],locations[2]);
   var dynamicmarker = createMarkers(myLatLng);
   map.addOverlay(dynamicmarker);
}

beachnames 得到位置位置 [0],lat 得到位置位置 [1],lng 得到位置位置 [2] 等等......

我没有使用海滩的名称作为“html”选项,但屏幕上只有一个标记。我检查了 for 循环,它看起来是正确的,v3 很容易让它工作。但是我需要有v2的搜索功能...

如果有人能给我小费或告诉我如何通过阵列并让那些标记出现,我将不胜感激!

4

1 回答 1

1

您似乎在 for 循环中遇到了一些问题。首先location.length应该是locations.lengthlocations然后你似乎在 for 循环中重新声明了一个变量。请记住,JavaScript 没有块作用域。

您可能想尝试以下方法:

var i, myLatLng;

for (i = 0; i < locations.length; i++) {
   myLatLng = new GLatLng(locations[i][1], locations[i][2]);
   map.addOverlay(createMarkers(myLatLng));
}
于 2010-06-23T08:43:57.993 回答