Можно ли при подготовке данных передать свой параметр (-ы) в geocode, для того, чтобы в случае успешного поиска, использовать эти данные для дальнейшей работы? В примере ниже, это просто для вывода сообщение (alert), но можно было бы добавить в описание объекта, вывести на метку текст и т.п.
//------------------------------------------- мой вариант -------------------------
function init() {
var myMap = new ymaps.Map('map', {
center: [55.734046, 37.588628],
zoom: 9
});
var objects = ymaps.geoQuery(ymaps.geocode('Москва, Слесарный переулок, д.3',{results:1, human:'Victor'}))
.add(ymaps.geocode('упс, не нашли адрес! Ну ладно, бывает...',{results:1, human:'Maxim'}}))
.add(ymaps.geocode('Люберцы, Октябрьский проспект д.143',{results:1, human:'Sergey'}))
.addToMap(myMap);
objects.then(function () {
// Этот код выполнится после того, как все запросы к геокодеру
// вернут ответ и объекты будут добавлены на карту.
alert(objects.get(0).properties.get('human'));
});
}
ymaps.ready(init);
//-----------------------
В Руководстве разработчика есть такой пример:
//------------------------------------ вариант из руководства разработчика -------------------------
var objects = ymaps.geoQuery(ymaps.geocode('Москва, Слесарный переулок, д.3'))
.add(ymaps.geocode('Люберцы, Октябрьский проспект д.143'))
.add(ymaps.geocode([55.734046, 37.588628]))
.addToMap(myMap);
var balloons = ['содержимое балуна 1', 'содержимое балуна 2', 'содержимое балуна 3'],
i = 0;
// Все операции асинхронные, поэтому следует дождаться готовности данных.
objects.then(function () {
objects.each(function (object) {
object.properties.set('balloonContentBody', balloons[i++]);
});
});
//-------------------------------------------------------------------------------------------------------------------------------------------
Но тут есть один подвох: если хоть один из адресов не будет найден, то метод перебора даст ошибку. Если бы можно было передать свои данные, тогда этого можно было избежать. Но как это сделать?