Клуб API Карт

Провайдер данных (геокодер)

maks.zimenkov
22 мая 2014, 22:52

Здравствуйте, у меня проблема. Пытаюсь изменить стандартный провайдер данных (геокодер) своим, чтоб искал по базе сайта + по карте.

 

http://jsfiddle.net/55tHL/1/

 

Если в поисковую выдачу отдавать напрямую коллекцию ymaps.geocode (сторока 62: geoObjects = res.geoObjects;), то все норм. 5 результатов появляется в выпадающем списке,

Если же методом each присвоить объекты ymaps.geocode другой коллекции, то в выпадающем списке выводится всего три объекта.

3 комментария
Подписаться на комментарии к посту

Присваивая в итераторе элементы одной коллекции другой коллекции Вы удаляете их из текущей коллекции.

В АПИ у элемента может быть только один родитель, поэтому и происходит такой спецэффект.

Правильный вариант – создавать новые геообъекты или вместо .each использовать while

 

while(geoObject = res.geoObjects.get(0)) {

    myCollection.add(geoObject);

}

 

Вот где собака зарыта :) Спасибо!

 

Можно, еще вопрос, что не так делаю (в примере выше)? в пыпадающем списке внизу не появляется строчка "Еще 10 результатов".