Клуб API Карт

Множественное геокодирование по примеру с API изменение

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

Здравствуйте. Сделал карту по примеру http://api.yandex.ru/maps/jsbox/multigeocode вернее не по примеру, а взял именно этот код, просто адреса выводятся из БД. Как бы все работает точки отбражаются все нормально. Но в БД есть ещё информация которую так же хотелось бы вывести в балун кроме адреса что там сейчас и так же сменить изображение точки на свое. Но вот понять не могу куда и что вставлять что бы это сделать?

8 комментариев
Посмотрите опции геообъектов: http://api.yandex.ru/maps/doc/jsapi/2.x-stable/ref/reference/GeoObject.xml
Делать различные манипуляции можете после получения ответа от геокодера (res — это GeoObjectArray), а затем уже добавлять точки на карту.

Можно плиз пример из кода выше куда вставлять данные что бы они отоброжались в балуне?

там, где
function (res) {
    myMap.geoObjects.add(res.geoObjects);
}


Можно сделать так:
function (res) {
    // перед добавлением меток на карту
    // пройдемся по каждой
    res.geoObjects.each(function (item) {
        var cont = item.properties.get('balloonContentBody');
        item.properties.set('balloonContentBody', cont + '

ваши данные

');
        // а еще сменим изображение иконки
        item.options
                .set('iconImageHref', 'http://cdn1.iconfinder.com/data/icons/google_jfk_icons_by_carlosjj/64/places.png')
                .set('iconImageSize', [40,40]);
    });
    // после добавим все это дело на карту
    myMap.geoObjects.add(res.geoObjects);
}
Александр
28 января 2016, 02:50

Спасибо, очень помогли. А как такое для одного обьекта провернуть. Так чтобы не делать перебор?Один вариант у меня получился, но там при перемещении карты сдвигалась метка. Ваш работает и на моем примере, но это не логично делать перебор одного обьекта. Помогите, плизз. Надо описание вставлять и свою иконку. И чтото через раз геокодинг работает на Украине на Народных.

 






 

res.geoObjects.get(0), где 0 - индекс элемента.

Если делать с первым элементом, то все те же манипуляции, только так:
var item = res.geoObjects.get(0);
// далее все то же:
var content = item.properties.get('balloonContentBody');
item.properties.set('balloonContentBody', content + 'данные');

Александр
28 января 2016, 02:50

ОГРОМНОЕ СПАСИБО! Работает!

 

спасибо большое примерно то что нужно, но вот тут возникла проблема что все дополнительные данные у всех точек одинакове то есть это данные всех точек которые присваиваются всем а не на каждую точку свои данные

код выглядит так

 Где $print_city это названия городов а $telmob дополнительные данные для каждой точки. Как поправить это?

 

PHP же?
1) $print_city — если массив, то json_encode в помощь.
2) $telmob — после получения результатов (function (res) …)
можно прописать, чтобы создавался объект:  var telephones = json_encode($telmob);
и далее перебор делать примерно так:
res.geoObjects.each(function (item, i) {
        var cont = item.properties.get('balloonContentBody');
        item.properties.set('balloonContentBody', cont + '

' + telephones[i] + '

');
        …
}