geoQuery

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

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

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

{ GeoQueryResult } geoQuery(source)

Параметры:

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

Тип: 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());