Клуб API Карт

вопрос по геокодированию и меткам

Fry256
22 октября 2013, 11:03

Добрый день!

у меня есть вопрос, помогите пожалуйста, остался буквально последний штрих к полотну:

пишу скрипт: на входе данные из формы, я их разбираю, геокодирую и ставлю метку, координаты метки вывожу во внешний импут, метку можно двигать, все вроде бы хорошо, но нужно модифицировать код, как я понял нужно не просто сразу после геокодирования ставить метку на карту, а сначала создать переменную метки, например MyPlacemark, а затем в нее добавлять результат геокодирования и загружать на карту и проблема вот в чем, не могу никак найти и понять как создать метку записанную в переменную MyPlacemark на основе геокодирования, чуть ниже код, подскажите что нужно дополнить к нему? (прошу прощение, не нашел где вставляется блок кода, поэтому добавляю участок в сообщении)

 

if($('input[name="street"]').val() && $('input[name="number"]').val()) { /*проверка заполнения обоих input*/
   addres = 'Тверь '+$('input[name="street"]').val()+' '+$('input[name="number"]').val();//формирование адреса
   ymaps.geocode(addres, { results: 1 }).then(function (res) {/*геокодирование адреса*/
   coords = res.geoObjects.get(0).geometry.getCoordinates();//получение координат адреса
   res.geoObjects.options.set('draggable', 'true');//пеермещение метки
   myMap.geoObjects.add(res.geoObjects);//добавление метки на карту
   savecoordinats();//функция вывода координат во внешний input
}); 
}

 

 

3 комментария
Подписаться на комментарии к посту
res.geoObjects - это коллекция геообъектов (GeoObjectCollection)
http://api.yandex.ru/maps/doc/jsapi/2.x-stable/ref/reference/GeoObjectCollection.xml
Из коллекции при помощи getIterator можно получить геообъект. Ну или можно воспользоваться компонентом geoQuery. Как то так:
ymaps.geoQuery(res.geoObjects).get(0)
http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/GeoQueryResult.xml#get
Или можно в geoQuery geocoder обернуть.

Если нужно добавлять геообъект через некоторое время после срабатывания геокодера, то можно просто потом создать новый геообъект по сохраненным координатам.

Код вставляется через кнопку "врезка" в визивиге (окно создания/редактирования поста). Сейчас я убрал его под врезку.

получить метку из коллекции можно методом get

myPlacemark = res.geoObjects.get(0);

Спасибо, большое!