0

私はv3で見つけられなかった検索機能のために、v2を使用するgmapsとImにかなり慣れていません。

ループしてマーカーをマップに配置したいデータの配列があります=)

本当に簡単なようですが、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」オプションとしてビーチの名前を使用しませんでしたが、画面に表示されるマーカーは1つだけです。forループを確認しましたが、正しく見えます。v3は非常に簡単に機能します。しかし、私はv2が持っている検索機能を持っている必要があります...

誰かが私にヒントを与えたり、アレイを通り抜けてそれらのマーカーを表示させる方法を教えてくれたら、とてもありがたいです!

4

1 に答える 1

1

forループにいくつかの問題があるようです。まず第一location.lengthlocations.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 に答える