Клуб API Карт

Яндекс карты умеют отдавать список объектов в видимой области?

boomflack
11 марта 2014, 03:02

Не могу найти пример где Яндекс карта при смещении видимой области отдавала бы список видимых объектов. В моей ситуации балунов или кластеров, но что бы был ясный пример. Смотрел в сторону статей api 2.0 с асинхронной кластеризацией, но исполеных примеров нет. Кто может что на githabe видел? А то у меня не получаеться... Я уже растроился совсем, уровень вхождения для молодых специалистов высок, может есть версия для серевров или может кто подсказать, как мне дейстовать?

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

Разбираюсь с вашим скриптом, если это ваш. 

 // Создаем 200 меток внутри области видимости карты.

   var points = generator.generate(20).atBounds(myMap.getBounds()),

Как добавить свои метки с множественным обратным геокодированием?  Как спрятать код под кат?

  ymaps.ready(function () {

            // Создание экземпляра карты и его привязка к созданному контейнеру

            var myMap = new ymaps.Map("map", {

                    center: [55.755768, 37.617671], // Москва

                    zoom: 10,

                    behaviors: ["default", "scrollZoom"]

                });

 

            var generator = new RandomPointsGenerator();

            alert(generator);

            // Перекрываем метод генератора меток для создания случайных пресетов 4-х типов.

            var presets = ['twirl#blueIcon'];

            generator.getPointOptions = function (i) {

                return {

                    preset: presets[Math.floor(Math.random() * presets.length)]

                };

            };

            // Перекрываем метод генератора меток для добавления данных сгенеренным меткам.

            generator.getPointData = function (i) {

                return {

                    id: 'item-' + (i + 1),

                    title: 'Метка ' + (i + 1),

                    clusterCaption: 'Метка ' + (i + 1),

                    balloonContentBody: 'Содержимое балуна метки ' + (i + 1)

                };

            };

 

            // Создаем 200 меток внутри области видимости карты.

            var points = generator.generate(20).atBounds(myMap.getBounds()),

                clusterer = new PieChartClusterer(),

                // Стили для DOM-представлений групп.

                presetStyles = {

                    "blue": "info"

                },

                // Названия групп.

                presetTitles = {

                    "blue": "Синий"

                },

                // Группируем метки из исходного массива по типу пресета.

                groups = $.map(presets, function (preset, index) {

                    var color = preset.match(/#([a-z]+)[A-Z]/)[1];

 

                    return {

                        id: 'group-' + index,

                        title: presetTitles[color],

                        style: presetStyles[color],

                        visible: true,

                        toggle: function () {

                            if(this.visible = !this.visible) {

                                clusterer.add(this.points);

                            }

                            else {

                                clusterer.remove(this.points);

                            }

                        },

                        points: $.grep(points, function (point) { return point.options.get('preset') === preset; }),

                        // Поиск метки в массиве по идентификатору.

                        findPointById: function (id) {

                            var i = 0, point;

 

                            while(point = this.points[i++]) {

                                if(point.properties.get('id') === id) {

                                    return point;

                                }

                            }

 

                            return null;

                        }

                    };

                });

 

            // Добавляем метки в кластеризатор.

            clusterer.add(points);

            // Добавляем кластеризатор на карту.

            myMap.geoObjects.add(clusterer); 

 

геокодировать надо на сервере

http://ymapsapi.ya.ru/replies.xml?item_no=1932

вы можете использовать geoQuery - ymaps.geoQuery(geoObjectArray).searchInside(map).

 

А какую задачу вы хотите решить?

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

Если вы используете кластеризатор, можете пробегаться по объектам и вызывать для них getObjectState. Он показывает в том числе видны объекты на карте или нет.

Можно пример?

Спасибо огромное, нужно на ту страницу ключивеков дописать, а то найти сложно.

пост с тегом "примеры", я быстро нашла