2010-06-23 2 views
0

Я довольно новичок в gmaps и Im, используя v2 из-за функции поиска, которую я не нашел в v3.Google Maps JS API v2 - простой пример множественного маркера

У меня есть массив данных, который я хочу перебрать и поставить маркеры на карте =)

Это кажется очень простым, но я не могу заставить его работать с 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], латы получили определение местоположения [1] и LNG получил определение местоположения [2] и т.д. ...

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

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

ответ

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)); 
} 
+0

О боже мой! Даниэль, я не знаю, сколько я мог бы поблагодарить вас прямо сейчас! : D Он работал как шарм! Мне действительно нужно проверить мое правописание, когда Im пишут для циклов, Im так используется для обозначения имен var, а затем все имена var, которые одинаковы, помечены в Zend Studio, но это не отображалось, как в php .. . Даниил, еще раз, спасибо вам большое! – EIGHTYFO