Google Maps JS API v2 — простой пример с несколькими маркерами

Я новичок в 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], а долгота получила местоположение местоположения [2] и так далее...

Я не использовал названия пляжей в качестве опции «html», но у меня на экране появляется только один маркер. Я проверил цикл for, и он выглядит правильно, v3 настолько прост, чтобы заставить его работать. Но мне нужна функция поиска, которая есть в v2...

Был бы очень признателен, если бы кто-нибудь мог дать мне совет или показать, как пройти через массив и заставить эти маркеры появляться!


person EIGHTYFO    schedule 23.06.2010    source источник


Ответы (1)


Похоже, у вас есть несколько проблем в цикле 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));
}
person Daniel Vassallo    schedule 23.06.2010
comment
Боже мой! Даниил, я не знаю, как сильно я мог бы поблагодарить вас прямо сейчас! :D Это сработало как шарм! Мне действительно нужно проверить правописание, когда я пишу для циклов, я так привык отмечать имена переменных, а затем все имена переменных, которые одинаковы, помечаются в Zend Studio, но это не отображается, как в php... Даниэль , еще раз большое спасибо!!! - person EIGHTYFO; 23.06.2010