Клуб API Карт

множественный геокодинг - параметр вернуть со слушателем

Пост в архиве.

вопрос такой. делаю множественный геокодинг - готовлю на js двухмерный массив с адресами, названиями и id - привязкой этих адресов к бд. После: 1. рисую карту 2. делаю цикл по массиву в котором: 3. делаю запросы к геокодеру 4. вывожу в слушателе по ответам метки, на которых нужно (помимо адреса в баллуне, после клика на метку) вывести название объекта. Из за асинхронности слушателя - я не имею, на момент прихода ответа, связи ответа с массивом по которому отсылались запросы к геокодеру. Ваши предлождения?

5 комментариев
цель всех этих действий - сохранить координаты списка адресов?
Михаил Королев
28 января 2016, 09:07
нет. цель показать собственный текст - названия объектов на метках списка.
Михаил Королев
28 января 2016, 09:07
вот пример http://www.owg.ru/testmap.htm соотв. описание везде одно и тоже - последнее значение соотв.переменной.
Воспользуйтесь "замыканием". var map; window.onload = function init () { map = new YMaps.Map(document.getElementById("YMapsID")); map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10); map.enableScrollZoom() map.addControl(new YMaps.TypeControl()); map.addControl(new YMaps.Zoom()); for (var i=0; i < myArray.length; i++) { showPlacemark(myArray[i]); } } function showPlacemark (element) { var geocoder = new YMaps.Geocoder(element[2], {results: 1, boundedBy: map.getBounds()}); YMaps.Events.observe(geocoder, geocoder.Events.Load, function () { if (this.length()) { var geoResult = this.get(0); geoResult.setIconContent("" + element[1] + ' - ' + element[0] + ""); map.addOverlay(geoResult); } }); }
Михаил Королев
28 января 2016, 09:07
Спасибо, всё получилось, предлагаю занести в анналы примеров :)