Клуб API Карт

Способы хранения извлечения id из базы данных в метках карты

maxraimerbelov
19 декабря 2012, 17:36

Доброе время суток.

Подскажите, возможно ли хранить идентификатор id из БД в метке карты и извлекать его при переопределенном событии click метки?

P.S.

Метки строятся по данным из БД, хотелось бы извлекать id объектов БД и перенаправлять на другой post запрос.

14 комментариев
Подписаться на комментарии к посту
Да, можно. К метке можно привязывать properties - произвольные данные.

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

оберните в self-invoking function

[цикл for]

(function (id) {

   // тут id будет актуальным

}(geoObject.properties.get('id'));

[/цикл for]

http://habrahabr.ru/post/38642/
последний пример.

вообще самое лучшее решение -  не навешивать обработчики в цикле, а использовать event delegation

Спасибо за ваши ответы, но пока я далек от истины.

for (var i = 0; i             myPlacemark = new ymaps.Placemark([result.data[i].corporationsObject_Latitude, result.data[i].corporationsObject_Longitude], {}, { preset: "twirl#greenStretchyIcon" });
            myPlacemark.properties.set({ iconContent:  result.data[i].corporationsObject_Name  });

            myPlacemark.properties.set({ id:  result.data[i].corporationsObject_Id  });

myPlacemark.events.add('click', function (e,id) {
                                    

}(myPlacemark.properties.get('id')));

MapObjectCollection.add(myPlacemark);

};

Правильно ли я обрисовал действо?

P.S.

Возможно проблема в прямоте моих рук, до прихода в мир HTML5 занимался WPF и SL4

Проблему с получением id решил следуюшим способом

myPlacemark.properties.set({ id: result.data[i].corporationsObject_Id });
           

            myPlacemark.events.add('click', function (e) {
                var eMap = e.get('target');
                var id = eMap.properties.get('id');
                $.post("/Home/MenuContent", { id: id }, function () {
                  
                }, "json");

            });

Теперь следующая трабла, как по клику открыть балун и заполнить его данными из post запроса?

 

посмотрите эту статью в блоге

Спасибо, то, что нужно.

Еще раз спасибо всем за помощь.

Столкнулся с проблемой отображения списков в бауле.

Список вида:

json.data[i].name

отоброжается только первый элемент.

Подскажите куда копать? Поиск по клубу результа не принес.

я ничего не понял

в чем конкретно проблема?

Как вывести в балун список объектов связанных с меткой?

Для примера: есть метка ТРЦ Авиатор,

в нем находятся офисы фирм иванов1, сидоров2, и т.д.

Список офисов я получаю через ajax, но в балуне отображается только первый офис.

Создайте HTML-разметку для всего списка офисов и вставьте ее в балун

Вообще лучше новые темы создавать на каждую проблему

Не могли бы вы показать пример (поиск по документации API ничего "работающего" не принес)

Прошу прощения, по следующему вопросу обязятельно создам новую тему.