Документация
Справочник JavaScript API
2.1.60 (текущая версия)
collection
interactivityModel
Interfaces

geoQuery

Статическая функция.

Формирует набор данных из указанного источника и создает на его основе экземпляр GeoQueryResult.

Возвращает результат, содержащий данные из источника.

{ GeoQueryResult } geoQuery(source)

Параметры:

ПараметрЗначение по умолчаниюОписание
source *
[no-highlight[

* Обязательный параметр/опция.

]no-highlight]

Тип: Object

Источник геообъектов:

  • IGeoObject - объект, реализующий соответствующий интерфейс;
  • IGeoObject[] - массив объектов, реализующих соответствующий интерфейс;
  • ICollection - коллекция объектов, реализующих интерфейс IGeoObject;
  • ICollection[] - массив коллекций объектов, реализующих интерфейс IGeoObject;
  • vow.Promise — объект-промис, передающий в функцию-обработчик источник данных для geoQuery;. Также в функцию-обработчик может быть передан объект с полем geoObjects, содержащий источник данных для geoQuery;
  • GeoQueryResult - объект класса GeoQueryResult.
  • String|Object - строка или объект с JSON-описанием объектов;
JSON-описание объектов строится по следующему принципу (см. пример ниже). Объектом может быть сущность или коллекция сущностей. Коллекция сущностей представляет из себя объект с полями:
  • type — тип объекта. Значение поля должно быть равно "FeatureCollection";
  • features - массив дочерних сущностей коллекции. Дочерние объекты могут быть сущностями или вложенными коллекциями сущностей.
Сущность представляет из себя объект с полями:
  • type — тип объекта. Значение поля должно быть равно "Feature";
  • geometry — геометрия объекта. Содержит поля type и coordinates. Соответствует параметру, передаваемому в конструктор объекта ymaps.GeoObject;
  • options - опции геообъекта;
  • properties - данные геообъекта.

* Обязательный параметр/опция.

Примеры:

1.

// Создание GeoQueryResult из одиночного геообъекта.
var placemark = new ymaps.Placemark([34, 56]);
ymaps.geoQuery(placemark).addToMap(myMap);

2.

// Создание GeoQueryResult из массива геообъектов.
var objects = [
        new ymaps.Placemark([34, 56]),
        new ymaps.Rectangle([[34, 56], [36, 57]])
    ];
ymaps.geoQuery(objects).addToMap(myMap);

3.

// Создание GeoQueryResult из коллекции геообъектов.
var result = ymaps.geoQuery(myMap.geoObjects).searchIntersect(myMap);
alert("Количество геообъектов в видимой области карты: " + result.getLength());

4.

// Создание GeoQueryResult из vow.Deferred.
var result = ymaps.geoQuery(ymaps.geocode('Сыромятнический переулок')).searchInside(myGeoBounds);
// Поскольку источник данных асинхронный, нужно дождаться обработки результата.
result.then(function () {
    alert('Количество объектов, лежащих внутри заданной области: ' + result.getLength());
});

5.

// Создание GeoQueryResult из JSON.
var result = ymaps.geoQuery({
        type: 'FeatureCollection',
                    features: [
                        {
                            type: 'Feature',
                            geometry: {
                                type: 'Circle',
                        coordinates: [15, 15],
                        radius: 100
                    }
                },
                {
                    type: 'Feature',
                            geometry: {
                                type: 'LineString',
                        coordinates: [[15, 16], [66, 23]]
                    }
                },
                {
                    type: 'FeatureCollection',
                    features: [
                        {
                            type: 'Feature',
                            geometry: {
                                type: 'Point',
                                coordinates: [12, 41]
                            },
                            properties: {
                              name: 'point'
                            },
                            options: {
                                preset: 'islands#yellowIcon'
                            }
                        }
                    ]
                }
            ]
      });
// Неточечные объекты добавим на карту как есть.
result.search('geometry.type != "Point"').addToMap(myMap);
// Точечные объекты добавим на карту через кластеризатор.
myMap.geoObjects.add(result.search('geometry.type == "Point"').clusterize());