Клуб API Карт

Next. Создание макета балуна

Борис Моисеев
4 сентября 2014, 19:28

Из прошлого ответа все получилось, спасибо огромное.

Проблема 2. Вроде учитывая что вызывается с контекстом макета, не получается получить координаты метки

Вам в этом примере нужно в функции-слушателе клика вызвать метод getData().geoObject самого макета.

Чтобы это сделать нужно вызвать функцию с контекстом макета.

$('#counter-button').bind('click', $.proxy(this.onCounterClick, this));

 

onCounterClick: function (e) { 
this.get('coordPosition'); - Ошибка

this.getData().get('coordPosition'); - Ошибка

...

пока придумал лишь чтобы просто передавать как свойство.

и еще, пожалуйста, объясните мне здесь наличие Е (function (e)) - зачем оно?

7 комментариев

Включите логику.

onCounterClick  Это событие клика на дом-элементе обрабатываемое с помощью jQuery, откуда там возьмутся геокоординаты?

Получить кординаты можно из геометрии геообъекта.

this.getData().geoObject.geometry.getCoordinates()

 

и еще, пожалуйста, объясните мне здесь наличие Е (function (e)) - зачем оно?


e – это объект-события, передаваемый jQuery в обработчик. Если он вам не нужен, тогда наверное незачем

Борис Моисеев
5 сентября 2014, 11:44

И правда, не подумал. Простите.

Всеволод Шмыров
5 сентября 2014, 11:10
Доброе утрое
метод getData().geoObject самого макета.
Вместо
this.get('coordPosition'); - Ошибка
this.getData().get('coordPosition'); - Ошибка
Нужно вызвать

getData().geoObject
Случайным перебором у вас ничего не получится. Через метод макета getData() можно получить ссылку геообъекта, А дальше у геообъекта можно вызвать геометрию
getData().geoObject.geometry

А зачем вы используете поле "coordPosition"? Это поле было доступно в 2.0. В 2.0 есть поле coords. Но это поле у события карты, а никак не у события клика, которое приходит из jQuery. Вы хотите получить координаты клика? Тогда вам следует поступить как здесь написано http://stackoverflow.com/questions/3234977/using-jquery-how-to-get-click-coordinates-on-the-target-element
Борис Моисеев
5 сентября 2014, 11:46

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

Всеволод Шмыров
5 сентября 2014, 12:05
тогда нужно, как я написал, в предыдущем тредике вызвать
this.getData().geoObject.geometry.getCoordinates()
Борис Моисеев
5 сентября 2014, 12:54

да, я понял, спасибо. это уже моя простая не внимательность.

Подскажите, как передать в обработчик результат this.getData().geoObject ?