Клуб API Карт

Помогите нубу разобраться с map.placemark

DonLaonda
29 марта 2017, 19:15

В общем наткнулся на аткую проблему:

Нужно получить координаты точки, которая пометилась в результате поиска по карте.

Т.е. мне надо прописать свой обработчик в событии когда эта точка помечается, но что это за событие и как в него попасть?

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

Я уже смирился с мыслью что тупой до ужаса, перерыл документацию, ничего понять не могу.

если есть какая-то функция аля map.removeAllOverlays();

Так же просьба пояснить, что такое map ?

у меня в коде:

var map = window.GLOBAL_arMapObjects['DL'] = new ymaps.Map(node, {
    center: [55.76, 37.64],
    zoom: 11
});

и если использовать ymaps или map, то ничего не работает, метка на карте ведь относистя к оверлеям как я понял?

В общем вся надежда на Ваши подробные подсказки(

12 комментариев
Получить доступ к найденным меткам можно с помощью метода getResultsArray
https://tech.yandex.ru/maps/doc/jsapi/2.1-dev/ref/reference/control.SearchControl-docpage/#getResultsArray
dimik,
спасибо за отклик, но я на столько безнадежен, что мне это ничего не дает. Вот как использовать {Object[]} getResultsArray() ?
Как обратиться? что написать? Как использовать? Видимо это очень очевидно но я не понимаю куда это сувать.
вот
<script>
var map = window.GLOBAL_arMapObjects['DL'] = new ymaps.Map(node, {
center: [55.76, 37.64],
zoom: 11
});
.. ещё пара строк настроек карты ...


Куда тут всунуть getResultsArray?
Как поймать момент когда его использовать? Пользователь ищет ручками через поиск точку, мне каждую секунду запускать скрипт с getResultsArray?
Как выглядит работа  с getResultsArray?
</script>

DonLaonda,
Сувать не надо. 
В вашем случае вариантов немного:
1. потратить время и изучить javascript. 
2. нанять того, кто потратил время и изучил javascript
3. использовать готовые решения


Можно попробовать использовать поиск и найти похожий вопрос, но опять же "нуб", "безнадежность", "сувать" и вот это все...
dimik,
1. потратить время и изучить javascript.  

причем тут это? Я его знаю.
Я не пойму просто как использовать яндекс апи.
Как связаны стандартный javascript и getResultsArray?
К какому объекту это относится и как им воспользоваться для меня не очевидно.
dimik,
тем более что суть вопроса:
в какое событие подлезть - какое событие отрабатывает когда пользователь воспользовался поиском по карте и образовалась метка? - увы изучение js не помогло.


Какой функцией и приведите пример, можно получить созданную точку/обратиться к ней? 


Я же помощи прошу по конкретным вопросам, а не постов аля:


Ну вот подключили халяку, а затем используйте баляку, вот инструкция по баляке:
 {тра ля ля} баляка


А если не поняли - учите js
DonLaonda,
Нужно слушать resultselect, и получать из объекта события индекс выбранного объекта.
Из массива результатов выбрать по индексу нужный
dimik,
 видимо пойду всё таки уволюсь и буду учить js...


А если серьезно - то почему нельзя привести пример я не понимаю. неужели там целый лист кода.


вот 
// Создадим элемент управления «поиск по карте» с включенным поиском по организациям.

var searchControl = new ymaps.control.SearchControl({
options: {
float: 'left',
provider: 'yandex#search'
}
});
это если вручную - но у меня-то он создается как-то автоматически, когда я прописываю параметры для карты.


Как мне к нему привязать обработчик на событие resultselect?
Мне надо к  нему обратиться.
Как мне к нему обратиться ? Если б я понял этот ключевой момент мне б наверняка и помощь не понадобилась.
Я и привожу конкретный пример:


var map = window.GLOBAL_arMapObjects['DL'] = new ymaps.Map(node, {
center: [55.76, 37.64],
zoom: 11
});
map.controls.add('searchControl');

событие на он-клик по карте я вот понял, так:
 map.events.add('click', function (e) {});



А как в таком случае к searchControl привязать событие?
Я не могу понять как обращаться к searchControl и прочим объектам, если они создавались "где-то там", а не вручную, во всех мануалах их создаютв ручную((

DonLaonda,
Либо вы инстанцируете и добавляете SearchControl сами, либо получаете его из карты через поле controls
var searchControl = map.controls.get('searchControl');
dimik,
Спасибо! где тут плюсики ставить?)))
dimik,
Это таким образом можно любой объект карты вытащить?
DonLaonda,
нет только элементы управления.
Рекомендую прочесть руководство пользователя, чтобы не путаться в терминах.
dimik,
Просто восхитительно! Теперь я стал понимать документацию и уже закодил всё что хотел. Огромное спасибо за терпение и эту афигительную строчку: var searchControl = map.controls.get('searchControl');!!!