Здравствуйте, пытаюсь реализовать множественное геокодирование (пока на клиенте), позже будет перенесено на сервер.
Использую "Класс множественного геокодирования" (multi-geocoder.js, list-collection.js).
В данной теме http://ymapsapi.ya.ru/replies.xml?item_no=462, написано, что "Класс множественного геокодирования" распологает найденные результаты в порядке, соответствующем порядку в массиве адресов во входных данных. У меня же получается, что при переборе полученной коллекции геообъектов методом each, порядок расположения элементов отличается от исходного массива данных.
var data = [{id: 'id-1',address: 'Калитниковская м ул 2 2'},{id: 'id-2',address: 'Усачева ул 40 88'},{id: 'id-3',address: 'Красносельский 2-й пер 2'},{id: 'id-4',address: 'Арбат ул 51'},{id: 'id-5',address: 'Смоленский 1-1 пер 24'},{id: 'id-6',address: 'Трехгорный вал ул 1'}];$(function() {var map,id = [],addr = [],i = 0;for (var key in data) {id.push(data[key].id);addr.push(data[key].address);}ymaps.ready(function() {map = new ymaps.Map("map", {center: [55.76, 37.64],zoom: 12,controls: []});// Множественное геокодированиеvar multiGeocoder = new MultiGeocoder({ boundedBy : map.getBounds() });multiGeocoder.geocode(addr).then(function (res) {var collection = new ymaps.GeoObjectCollection();res.geoObjects.each(function (geoObject) {var coords = geoObject.geometry.getCoordinates(),name = geoObject.properties.getAll().name,description = geoObject.properties.getAll().description;console.log(addr[i] + ' | ' + name);collection.add(new ymaps.Placemark(coords, {iconContent: id[i],balloonContentHeader: name,balloonContent: description}, {preset: 'islands#blueStretchyIcon'}));polygonPoints.push(coords);i++;});map.geoObjects.add(collection);},function (err) {console.log(err);});});});
Один из результатов вывода в консоль:
Калитниковская м ул 2 2 | улица Арбат, 51с1Усачева ул 40 88 | улица Усачева, 40Красносельский 2-й пер 2 | Малая Калитниковская улица, 2к2Арбат ул 51 | 2-й Красносельский переулок, 2Смоленский 1-1 пер 24 | улица Трехгорный Вал, 1Трехгорный вал ул 1 | Смоленский бульвар, 1с2
В итоге метки на карте расставляются правильно, адреса соответствуют, но ID в iconContent проставляются не корректно. При повторных рефрешах - порядок в результирующем массиве отличается.
Возможно я что-то делаю не так?
Хотел предоставить примеры на JSBin или JSFiddle, но мой пример там выдает ошибки