Google Maps JS API v2 - 简单的多标记示例

时间:2010-06-23 08:42:01

标签: javascript php arrays google-maps google-maps-markers

我对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);
}

海滩名得到位置[0],纬度得到位置[1],lng得到位置[2]等等......

我没有使用海滩的名称作为“html”选项,但我只在屏幕上显示一个标记。我已经检查了for循环它看起来是正确的,v3是如此简单,让它工作。但是我需要拥有v2具有的搜索功能......

如果有人能给我一个提示或告诉我如何通过阵列并让这些标记显示出来,我将非常感激!

1 个答案:

答案 0 :(得分:1)

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

您可能需要尝试以下操作:

var i, myLatLng;

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