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());
Предыдущая
Следующая