Клуб API Карт

Yandex Maps и отдельные элементы управления

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

Здравствуйте! Такая задача: нужно создать страничку, на которой бы отображалась карта Yandex и несколько текстовых полей с кнопкой (например, <form>, т.е. главное - чтобы это было отдельно от самой карты). В поля вводятся адреса, а по нажатию на кнопку - на карте перерисовываются маршруты от одного введенного адреса в другой. Вопрос: можно ли такое сделать впринципе?

4 комментария
Александр Новиков
28 января 2016, 05:26
Можно.

На JavaScript можно и не такое...

Главное чтобы и формы и карта были на одной странице. В других случаях возможны варианты :)

Да, все на одной странице. Сам я новичок в яваскриптинге. Я так понимаю, по нажатию кнопки должна вызываться функция, в которой каким-то образом моей карте (YMaps.jQuery(function () {var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]) ; } - делал как в мануале на сайте) будет делаться map.addOverlay(router);? Вот не могу понять каким именно образом это делается... Как обращаться к созданой мной ранее карте через другую функцию?

Александр Новиков
28 января 2016, 05:26
Не через функцию а через переменную. У вас есть переменная map.
Но лучше ее сделать глобальной для всей страницы. т.е. примерно так

var map;
YMaps.jQuery(function () {
map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]) ;
}

Т.е. описали переменную глобально. По факту загрузки  страницы создали карту и присвоили переменной ссылку на карту.

В дальнейшем используем эту переменную для работы с картой.
Например, добавляем метку

map.addOverlay(....);

Соответственно к переменной можно обращаться из любого места страницы, из любого скрипта.

Для общего развития советую почитать что-нибудь про видимость переменных и про сроки их "жизни" в JavaScript

Большое спасибо, все получилось! :)