Клуб API Карт

Заголовок не указан

Пост в архиве.
xdll
30 ноября 2012, 18:50

Прошу помощи.

Использую код подсмотренный здесь:

http://api.yandex.ru/maps/doc/jsapi/1.x/examples/multiplygeocoding.html

Все круто, но вот как добавить описание к болунам?

    <script type="text/javascript">
        // Создание обработчика для события window.onLoad
        YMaps.jQuery(function () {
            // Создание экземпляра карты и его привязка к созданному контейнеру
            var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);

            // Установка для карты ее центра и масштаба
            map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 4);
            map.addControl(new YMaps.TypeControl());//Тип карты, кнопочки Схема, Гибрид, Спутник
            map.addControl(new YMaps.ToolBar());//Тулбар, кнопки Рука, Лупа, Линейка
            map.addControl(new YMaps.Zoom());    
           
// Координаты или адреса географических объектов
            var data = [
            
тут php цикл который вставляет адреса из БД.

            ];
            var geocoder = new MultiplyGeocoder(data);
            map.addOverlay(geocoder);
            
            YMaps.Events.observe(geocoder, "Load", function (geocoder) {});
        });

        // Реализует наследование прототипа без исполнения конструктора родителя
        // Подробнее о наследовании: http://javascript.ru/tutorial/object/inheritance
        function extend (child, parent) {
            var c = function () {};
            c.prototype = parent.prototype;
            c.prototype.constructor = parent;
            return child.prototype = new c;
        };

        // Множественный геокодер
        // requests - массив адресов
        function MultiplyGeocoder (requests) {

            // Вызов родительского конструктора
            YMaps.GeoObjectCollection.call(this);

            var _this = this,

                // Количество вызовов геокодера
                geocodeCallCount = 0,

                // Обработчики событий
                listeners = [];

            // Последовательно геокодируем все переданные адреса
            for (var i = 0, l = requests.length; i < l; i++) {
                geocode(requests[i]);
            }

            // Функция, отвечающая за геокодировании одного адреса
            function geocode (request) {
                // Геокодируем
                var geocoder = new YMaps.Geocoder(request);
           
                // Счетчик вызовов геокодирования увеличиваем
                geocodeCallCount++;

                // Сохраняем ссылки на обработчики событий
                listeners = listeners.concat(

                    // Обработка событий Load и Fault
                    YMaps.Events.observe(geocoder, [geocoder.Events.Load, geocoder.Events.Fault], function (geocoder) {
                        if (geocoder.length()) {
                            _this.add(geocoder.get(0));
                        }
                        geocodeCallCount--;
                        isFinish();
                    })
                );
            }

            // Функция для проверки окончания процесса геокодирования
            function isFinish () {
                // Если все объекты сгеокодированы, то генерируем событие завершения
                if (!geocodeCallCount) {

                    // Событие о завершении геокодирования
                    YMaps.Events.notify(_this, "Load", _this);

                    // Удаление обработчиков событий
                    for (var i = 0, l = listeners.length; i < l; i++) {
                        listeners[i].cleanup();
                    }
                }
            }
        }

        var ptp = extend(MultiplyGeocoder, YMaps.GeoObjectCollection);
    </script>