Google Maps JS API v2 - пример простого нескольких маркеров - PullRequest
0 голосов
/ 23 июня 2010

Я довольно новичок в 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 Ответ

1 голос
/ 23 июня 2010

У вас, похоже, есть несколько проблем в цикле for.Прежде всего location.length должно быть locations.length.Затем вы, кажется, повторно объявляете переменную locations в цикле 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));
}
...