<div><div>Адрес 1</div><div>Описание 1</div></div>
<div><div>Адрес 2</div><div>Описание 2</div></div>
<div><div>Адрес 3</div><div>Описание 3</div></div>
...
Эти дивы пронумерованы, т.е. на странице рядом с каждым адресом стоит цифра.
Нужно нанести на карту метки с номерами, т.е. чтобы метка по первому диву была с цифрой 1 и т.д. Для меток нужно сделать определённые баллуны, инфа в которых берётся также из контейнера с адресами.
Короче говоря нужно сделать так, как сделано на главной странице карт, например вот http://maps.yandex.ru/?text=yandex.
Я набросал код вот такого вида:
jQuery("селектор для элементов с адресами и описаниями").each(function() {
// извлекаем адрес и описание
addresses.push(адрес);
balloons.push(описание);
});
for (var i = 0; i < addresses.length; i++) {
var addr = ymaps.geocode(addresses[i], {results: 1});
addr.then(function(res) {
placemarks.push(res.geoObjects.get(0).geometry.get Coordinates());
});
}
Потом написал вот такую функцию, которую вызываю по таймауту в 2-3 секунды:
function putPlacemarks(coords) {
var myCollection = new ymaps.GeoObjectCollection();
for (var i = 0, l = coords.length; i < l; i++) {
var myPlacemark = new ymaps.Placemark(coords[i], {
iconContent: i + 1,
balloonContent: balloons[i]
}, {
preset: "twirl#lightblueIcon"
});
myCollection.add(myPlacemark);
}
myMap.geoObjects.add(myCollection);
}
Код, который берёт тексты и объявляет карту находится в ymaps.ready(). Сейчас код работает некорректно, номера меток проставляются неверно и всегда по-разному. Я так понимаю это связано с задержками и с тем, что геокод не возвращает координаты мгновенно.
Сейчас обратил внимание - страничка на локалхосте ошибок даёт сильно меньше, а вот выложенная на сайт - тупо рандомит. Как я понимаю, порядок возвращения координаты не совпадает с порядком вызова geocode, отсюда и проблема.
Никто не может подсказать, есть ли пример, как на яндекс-картах сделано? То есть не только, чтобы просто заданные адреса закинуть на карту, но ещё и чтобы при наведении на элемент в доме, метка узнавала об этом и меняла цвет или появлялся хинт и пр?
Большое спасибо за помощь.