Имеется двумерный массив, по сути - таблица, из которой надо вывести точки на карте.
Делаю так:
var myMap;
ymaps.ready(init);
function init () {
myMap = new ymaps.Map('ymap', {
center:[65,100],
zoom:3,
controls:['zoomControl','typeSelector']
});
c = ai_users_points.length;
i = 0;
while (i<c) {
var adr = arr[i][0]; // сдесь адрес, по которому ищется точка
var name = arr[i][1]; // сдесь текст хинта
var coords; // для координат
// ищем координаты по адресу
var myGeocoder = ymaps.geocode(adr,{results:1});
myGeocoder.then(function (res) {
myMap.geoObjects.add(res.geoObjects.get(0));
coords = res.geoObjects.get(0).geometry.getCoordinates();
});
//формирование хинта
HintLayout = ymaps.templateLayoutFactory.createClass(
'<div class="ymap-hint"><strong>{{ properties.fname }}</strong></div>', {
getShape: function () {
var el = this.getElement(), result = null;
if (el) {
var firstChild = el.firstChild;
result = new ymaps.shape.Rectangle(
new ymaps.geometry.pixel.Rectangle([
[0,0],
[firstChild.offsetWidth, firstChild.offsetHeight]
])
);
}
return result;
}
}
);
// формирование точки
myPlacemarkPoint = new ymaps.Placemark(coords, {
fname: name
},{
hintLayout: HintLayout
});
// выводим точку на карту
myMap.geoObjects.add(myPlacemarkPoint);
i++;
}
}
Все бы ничего, но хинты не добавляются.
Если закомментировать myMap.geoObjects.add(res.geoObjects.get(0)); то хинты добавляются, но у каждой точки содержание хинта - от последней записи массива.
Как-либо проблема решаема?