---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/llms.txt


# GeoQueryResult

Расширяет [IPromiseProvider](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IPromiseProvider.md).

Результат геозапроса.

## Конструктор {#constructor}

```javascript
GeoQueryResult(source)
```

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `source`[*](*parametr) | — | Тип: Object

Источник геообъектов:
• IGeoObject - объект, реализующий соответствующий интерфейс;

• IGeoObject[] - массив объектов, реализующих соответствующий интерфейс;

• ICollection - коллекция объектов, реализующих интерфейс IGeoObject;

• ICollection[] - массив коллекций объектов, реализующих интерфейс IGeoObject;

• IPromiseProvider - объект-промис, передающий в функцию-обработчик источник данных для geoQuery; Также в функцию-обработчик может быть передан объект с полем geoObjects, содержащий источник данных для geoQuery;

• GeoQueryResult - объект класса GeoQueryResult;

• String\|Object - строка или объект с JSON-описанием объектов;

• Object[] - массив с JSON-описаниями геометрий. Элемент массива представляет из себя объект с полями type и coordinates. При описании круга также необходимо поле radius. При описании многоугольника можно указывать необязательное поле fillRule. ||
|#

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

**Примеры:**

**1.**

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

**2.**

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

**3.**

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

**4.**

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

**5.**

```javascript
// Создание 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: 'twirl#yellowIcon'
                            }
                        }
                    ]
                }
            ]
      });
// Неточечные объекты добавим на карту как есть.
result.search('geometry.type != "Point"').addToMap(myMap);
// Точечные объекты добавим на карту через кластеризатор.
myMap.geoObjects.add(result.search('geometry.type == "Point"').clusterize());
```

## Методы {#method}

#|
|| **Имя** | **Возвращает** | **Описание** ||
|| [add](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#add)([source](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#add-param-source)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Добавляет объекты из источника к объектам результата.
Не изменяет исходный объект, а создает новый, содержащий объединенный набор геообъектов. ||
|| [addEvents](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#addEvents)([events](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#addEvents-param-events), [callback](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#addEvents-param-callback), [context](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#addEvents-param-context)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Навешивает обработчики событий на элементы выборки. ||
|| [addTo](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#addTo)([collection](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#addTo-param-collection)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод для добавления объектов в коллекцию геообъектов. ||
|| [addToMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#addToMap)([map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#addToMap-param-map)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод для добавления объектов на карту. ||
|| [applyBoundsToMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#applyBoundsToMap)([map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#applyBoundsToMap-param-map)[, [options](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#applyBoundsToMap-param-options)]) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, позволяющий установить видимую область карты так,
чтобы видны были все объекты из выборки. ||
|| [clusterize](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#clusterize)([[options](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#clusterize-param-options)]) | [Clusterer](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Clusterer.md) | Метод создает кластеризатор и добавляет в него объекты из выборки.
В случае, если данные выборки еще не готовы, они будут добавлены в кластеризатор
сразу после обработки, а возвращенный кластеризатор изначально будет пуст.
В кластеризатор будут добавлены только объекты с геометрией "Point". ||
|| [each](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#each)([callback](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#each-param-callback), [context](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#each-param-context)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Returns ссылку на себя. ||
|| [get](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#get)([index](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#get-param-index)) | [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md) | Метод возвращает элемент выборки по индексу. ||
|| [getBounds](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getBounds)() | Number[][]\|null | Returns географические координаты области, охватывающей объекты результата. ||
|| [getCenter](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getCenter)([map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getCenter-param-map)) | Number[] | Метод, возвращающий центр области, охватывающей объекты результата,
в географических координатах. ||
|| [getCentralObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getCentralObject)([map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getCentralObject-param-map)) | [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md)\|null | Метод для получения объекта, наиболее близкого к центру видимой области карты. ||
|| [getClosestTo](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getClosestTo)([object](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getClosestTo-param-object)[, [radius](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getClosestTo-param-radius)]) | [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md)\|null | Метод, возвращающий объект выборки, ближайший к указанному.
Если на вход подается объект, уже находящийся в выборке, то вернется другой
объект выборки, ближайший к указанному.
Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. ||
|| [getExtreme](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getExtreme)([key](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getExtreme-param-key)) | Number | Метод, возвращающий максимальные и минимальные значения координат
среди координат объектов выборки. ||
|| [getExtremeObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getExtremeObject)([key](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getExtremeObject-param-key)) | [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md) | Метод, возвращающий объект с минимальной или максимальной координатой
среди координат объектов выборки. ||
|| [getGlobalPixelBounds](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getGlobalPixelBounds)([map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getGlobalPixelBounds-param-map)) | Number[][]\|null | Метод, возвращающий глобальные пиксельные координаты области для текущего зума карты. ||
|| [getGlobalPixelCenter](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getGlobalPixelCenter)([map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getGlobalPixelCenter-param-map)) | Number[] | Метод, возвращающий центр области, охватывающей объекты результата,
в глобальных пиксельных координатах для текущего зума карты. ||
|| [getIterator](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getIterator)() | [IIterator](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IIterator.md) | Returns итератор по объектам результата. ||
|| [getLength](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getLength)() | Number | Returns количество элементов в результате. ||
|| [getMaxZoom](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getMaxZoom)([map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#getMaxZoom-param-map)) | Number | Метод, вычисляющий максимальный коэффициент масштабирования, при котором в видимую
область карты попадают все объекты. ||
|| [indexOf](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#indexOf)([item](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#indexOf-param-item)) | Number | Returns индекс элемента в выборке. Если элемент не найден, возвращается -1. ||
|| [intersect](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#intersect)([result](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#intersect-param-result)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод создает новую выборку, содержащую общие элементы
для двух других выборок. ||
|| [isReady](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#isReady)() | Boolean | Метод, возвращающий признак готовности выборки. ||
|| [map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#map)([callback](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#map-param-callback)[, [context](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#map-param-context)]) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, вызывающий метод callback для всех элементов выборки
и формирующий новую выборку на основе полученных результатов. ||
|| [remove](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#remove)([objects](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#remove-param-objects)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Удаляет объекты из результата.
Не изменяет исходный объект, а создает новый, содержащий результирующий набор геообъектов. ||
|| [removeEvents](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#removeEvents)([events](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#removeEvents-param-events), [callback](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#removeEvents-param-callback), [context](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#removeEvents-param-context)) |  | Удаляет подписку на событие с объекта. Обратите внимание, что для корректной отписки
передаваемые аргументы должны быть точно такие же, как при подписке через метод addEvents. ||
|| [removeFrom](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#removeFrom)([collection](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#removeFrom-param-collection)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод для удаления объектов из коллекции. ||
|| [removeFromMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#removeFromMap)([map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#removeFromMap-param-map)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод для удаления объектов с карты. ||
|| [reverse](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#reverse)() | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Переставляет элементы выборки в обратном порядке и возвращает новую выборку. ||
|| [search](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#search)([condition](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#search-param-condition)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод для поиска объектов выбоки, удовлетворяющих условиям. ||
|| [searchContaining](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#searchContaining)([object](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#searchContaining-param-object)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, создающий новую выборку из объектов, содержащих указанный объект.
Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. ||
|| [searchInside](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#searchInside)([object](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#searchInside-param-object)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, создающий новую выборку из объектов, целиком входящих в указанный объект.
Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. ||
|| [searchIntersect](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#searchIntersect)([object](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#searchIntersect-param-object)[, [options](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#searchIntersect-param-options)]) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, создающий новую выборку из объектов, пересекающих указанный объект.
Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. ||
|| [setOptions](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#setOptions)([key](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#setOptions-param-key)[, [value](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#setOptions-param-value)]) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, позволяющий задать значение опций всем элементам выборки. ||
|| [setProperties](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#setProperties)([path](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#setProperties-param-path), [value](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#setProperties-param-value)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, позволяющий задать значение поля properties всем элементам выборки. ||
|| [slice](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#slice)([begin](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#slice-param-begin)[, [end](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#slice-param-end)]) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, возвращающий срез выборки. ||
|| [sort](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#sort)([comparator](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#sort-param-comparator)) |  | Метод для сортировки объектов выборки.
Не изменяет исходную выборку, а создает новую, содержащую упорядоченные
объекты. ||
|| [sortByDistance](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#sortByDistance)([object](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#sortByDistance-param-object), [raduis](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#sortByDistance-param-raduis)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, позволяющий получить выборку, содержащую объекты, отсортированные по
расстоянию до указанного объекта.
Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов.
Не изменяет исходную выборку. ||
|| [then](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#then)([[onResolve](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#then-param-onResolve)[, [onReject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#then-param-onReject)]]) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Подписка на "обещание". ||
|| [unsetOptions](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#unsetOptions)([keys](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#unsetOptions-param-keys)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод, позволяющий обнулять значение опций всем элементам выборки. ||
|| [unsetProperties](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#unsetProperties)([path](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md#unsetProperties-param-path)) | [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md) | Метод позволяющий обнулить значение поля properties у всех элементов выборки. ||
|#

## Описание методов {#description-methods}

### add

```javascript
{GeoQueryResult} add(source)
```

Добавляет объекты из источника к объектам результата.
Не изменяет исходный объект, а создает новый, содержащий объединенный набор геообъектов.

**Returns** новый объект с объединенным набором геообъектов.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `source`[*](*parametr) | — | Тип: Object

Источник геообъектов:
• IGeoObject - объект, реализующий соответствующий интерфейс;

• IGeoObject[] - массив объектов, реализующих соответствующий интерфейс;

• ICollection - коллекция объектов, реализующих интерфейс IGeoObject;

• ICollection[] - массив коллекций объектов, реализующих интерфейс IGeoObject;

• util.Promise - объект-промис, передающий в функцию-обработчик источник данных для geoQuery; Также в функцию-обработчик может быть передан объект с полем geoObjects, содержащий источник данных для geoQuery;

• GeoQueryResult - объект класса GeoQueryResult;

• String\|Object - строка или объект с JSON-описанием объектов;

• Object[] - массив с JSON-описаниями геометрий. Элемент массива представляет из себя объект с полями type и coordinates. При описании круга также необходимо поле radius. При описании многоугольника можно указывать необязательное поле fillRule.

JSON-описание объектов строится по следующему принципу (см. пример ниже).
Объектом может быть сущность или коллекция сущностей.
Коллекция сущностей представляет из себя объект с полями:

• type - тип объекта. Значение поля должно быть равно "FeatureCollection";

• features - массив дочерних сущностей коллекции. Дочерние объекты могут быть сущностями или вложенными коллекциями сущностей.

Сущность представляет из себя объект с полями:

• type - тип объекта. Значение поля должно быть равно "Feature";

• geometry - геометрия объекта. Содержит поля type и coordinates. Соответствует параметру, передаваемому в конструктор объекта ymaps.GeoObject;

• options - опции геообъекта;

• properties - данные геообъекта. ||
|#

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

**Примеры:**

**1.**

```javascript
// Добавление в GeoQueryResult одиночного геообъекта.
var placemark = new ymaps.Placemark([34, 56]);
myGeoQueryResult.add(placemark);
```

**2.**

```javascript
// Добавление в GeoQueryResult массива геообъектов.
var objects = [
        new ymaps.Placemark([34, 56]),
        new ymaps.Rectangle([[34, 56], [36, 57]])
    ];
// Обратите внимание, что в результате будет получен другой объект GeoQueryResult,
// а старый останется без изменений.
var newResult = myGeoQueryResult.add(objects);
```

**3.**

```javascript
// Добавление в GeoQueryResult коллекции геообъектов.
// Обратите внимание, что в результате будет получен другой объект GeoQueryResult,
// а старый останется без изменений.
var newResult = myGeoQueryResult.add(myMap.geoObjects).searchIntersect(myBounds);
alert("Количество геообъектов в указанной области: " + myGeoQueryResult.getLength());
```

**4.**

```javascript
// Добавление в GeoQueryResult результатов геокодирования.
// Обратите внимание, что в результате будет получен другой объект GeoQueryResult,
// а старый останется без изменений.
var newResult = myGeoQueryResult.add(ymaps.geocode('Сыромятнический переулок'));
newResult.searchInside(myGeoBounds);
// Поскольку источник данных асинхронный, нужно дождаться обработки результата.
result.then(function () {
    // Исходный объект все еще существует.
    alert('Было объектов до добавления:' + myGeoQueryResult.getLenght());
    // В новом объекте уже и старые геообъекты, и добавленные.
    alert('Стало объектов после добавления: ' + result.getLength());
});
```

**5.**

```javascript
// Добавление объектов из JSON-строки.
var result = ymaps.geoQuery(myMap.geoObjects),
    extendedResult = result.add('{"type": "Feature", "geometry": { "type": "Point", "coordinates": [15, 64] }}');
extendedResult.addToMap(myMap);
```
### addEvents

```javascript
{GeoQueryResult} addEvents(events, callback, context)
```

Навешивает обработчики событий на элементы выборки.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `events`[*](*parametr) | — | Тип: String\|String[]

Тип или массив типов событий, на которые совершается подписка. ||
|| `callback`[*](*parametr) | — | Тип: Function

Функция-обработчик. ||
|| `context`[*](*parametr) | — | Тип: Object

Контекст выполнения функции-обработчика. ||
|#

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

**Пример:**

```javascript
ymaps.geoQuery(map.geoObjects).search('geometry.type="Circle"').addEvents('click', function () {
    alert('Вы кликнули по кругу!');
});
```

### addTo

```javascript
{GeoQueryResult} addTo(collection)
```

Метод для добавления объектов в коллекцию геообъектов.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `collection`[*](*parametr) | — | Тип: [ICollection](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ICollection.md)

Коллекция, в которую добавляются объекты. ||
|#

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

**Пример:**

```javascript
// Покажем на карте объекты северного полушария.
var result1 = ymaps.geoQuery(placemarks).search('lat > 0').addTo(myMap.geoObjects);
```

### addToMap

```javascript
{GeoQueryResult} addToMap(map)
```

Метод для добавления объектов на карту.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `map`[*](*parametr) | — | Тип: [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md)

Карта, на которую добавляются объекты. ||
|#

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

**Пример:**

```javascript
// Покажем на карте объекты северного полушария.
var result1 = ymaps.geoQuery(placemarks).search('lat > 0').addToMap(myMap);
```

### applyBoundsToMap

```javascript
{GeoQueryResult} applyBoundsToMap(map[, options])
```

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

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `map`[*](*parametr) | — | Тип: [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md)

Карта. ||
|| `options`| — | Тип: Object

Опции. ||
|| `options.checkZoomRange`| false | Тип: Boolean

Проверка возможности установить указанный коэффициент масштабирования. Если значение опции равно true, метод вызывается асинхронно. Производится обращение к серверу, который возвращает интервал допустимых для данного центра значений коэффициентов масштабирования. После этого выставляется указанный центр и корректный зум. ||
|| `options.duration`| 0 | Тип: Number

Время анимации в миллисекундах. ||
|| `options.preciseZoom`| false | Тип: Boolean

Возможность использования дробных коэффициентов масштабирования. ||
|| `options.timingFunction`| — | Тип: Function

Тайминг-функция. ||
|| `options.zoomMargin`| — | Тип: Number\|Number[]

Отступы от границ видимой области карты. Если задано одно число - оно применяется ко всем сторонам. Если задано два - то это горизонтальные и вертикальные отступы соответственно. Если задан массив из 4х чисел, то это отступы top, right, bottom, left. ||
|#

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

**Примеры:**

**1.**

```javascript
// Сделаем запрос на геокодирование и выставим карте видимую область так,
// чтобы на ней были видны сразу все результаты.
var result = ymaps.geoQuery(ymaps.geocode('улица Ленина')).applyBoundsToMap(myMap);
// Обратите внимание, что запрос на сервер асинхронный, нужно дождаться результата.
result.then(function () {
    alert("Результаты получены и видимая область карты скорректирована.");
}, function () {
    alert("Произошла ошибка.");
});
```

**2.**

```javascript
// Для синхронных запросов выставление новой области карты происходит сразу.
var result = ymaps.geoQuery(objects).applyBoundsToMap(myMap);
alert('Видимая область карты изменена.');
```
### clusterize

```javascript
{Clusterer} clusterize([options])
```

Метод создает кластеризатор и добавляет в него объекты из выборки.
В случае, если данные выборки еще не готовы, они будут добавлены в кластеризатор
сразу после обработки, а возвращенный кластеризатор изначально будет пуст.
В кластеризатор будут добавлены только объекты с геометрией "Point".

**Returns** кластеризатор.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `options` | — | Тип: Object

Опции, передаваемые в конструктор объекта [Clusterer](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Clusterer.md). ||
|#

**Пример:**

```javascript
// Выберем только кафе и добавим их в кластеризатор.
var clusterer = ymaps.geoQuery(objects).search('properties.type="Cafe"').clusterize();
myMap.geoObjects.add(clusterer);
```
### each

```javascript
{GeoQueryResult} each(callback, context)
```

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `callback`[*](*parametr) | — | Тип: Function

Функция-обработчик. Вызывается для каждого элемента выборки и получает его на вход. ||
|| `context`[*](*parametr) | — | Тип: Object

Контекст выполнения функции-обработчика. ||
|#

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

**Пример:**

```javascript
// Скроем красные метки в видимой области карты.
ymaps.geoQuery(placemarks).searchIntersect(myMap).each(function(pm) {
    if (pm.options.get('preset') == 'twirl#redIcon') {
        myMap.geoObjects.remove(pm);
    }
});
```

### get

```javascript
{IGeoObject} get(index)
```

Метод возвращает элемент выборки по индексу.

**Returns** объект.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `index`[*](*parametr) | — | Тип: Number

Индекс элементов. ||
|#

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

**Примеры:**

**1.**

```javascript
// Пример при синхронной обработке.
var result = ymaps.geoQuery(placemarks).sort('lat'),
    // Самый южный объект.
    southObject = result.get(0),
    // Самый северный объект.
    northObject = rosult.get(result.getLength() - 1);
```

**2.**

```javascript
// Пример при асинхронной обработке.
var result = ymaps.geoQuery(ymaps.geocode('кафе Москва')).sort('lat');
// Нужно дождаться готовности результата для дальнейшей обработки.
result.then(function () {
    // Самый южный объект.
    var southObject = result.get(0),
    // Самый северный объект.
        northObject = result.get(result.getLength() - 1);
});
```

### getBounds

```javascript
{Number[][]|null} getBounds()
```

**Returns** географические координаты области, охватывающей объекты результата.

**Пример:**

```javascript
// Устанавливаем центр и масштаб карты так, чтобы отобразить весь результат целиком.
myMap.setBounds(myResult.getBounds());
```

### getCenter

```javascript
{Number[]} getCenter(map)
```

Метод, возвращающий центр области, охватывающей объекты результата,
в географических координатах.

**Returns** координаты центра области в географических координатах.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `map`[*](*parametr) | — | Тип: [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md)

Карта, для которой нужно произвести расчеты. ||
|#

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

**Пример:**

```javascript
// Сместим центр карты в центр области, охватывающей объекты.
myMap.setCenter(ymaps.geoQuery(objects).getCenter());
```

### getCentralObject

```javascript
{IGeoObject|null} getCentralObject(map)
```

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

**Returns** ссылка на геообъект или null в случае пустой выборки.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `map`[*](*parametr) | — | Тип: [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md)

Карта, для которой нужно произвести расчеты. ||
|#

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

**Пример:**

```javascript
// Пример работы при синхронных операциях.
// Откроем балун у объекта, ближайшего к центру видимой области карты.
ymaps.geoQuery(objects).getCentralObject(myMap).balloon.open();
```

### getClosestTo

```javascript
{IGeoObject|null} getClosestTo(object[, radius])
```

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

**Returns** объект выборки, ближайший к указанному или null, если объект невозможно найти.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `object`[*](*parametr) | — | Тип: Object

Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
• IGeoObject - объект, реализующий интефейс [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md);

• IGeometry - объект, реализующий интерфейс [IGeometry](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeometry.md);

• Map - карта. В этом случае опорным объектом будет прямоугольная граница карты;

• Number[] - координаты точки;

• Object - Json-описание геометрии. Содержит поля type и coordinates. При описании круга также необходимо поле radius. При описании многоугольника можно указывать необязательное поле fillRule.
||
|| `radius` | — | Тип: Number

Радиус окружности в метрах. ||
|#

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

**Примеры:**

**1.**

```javascript
// Примеры использования метода при различных входных данных.
var result = ymaps.geoQuery(objects).addToMap(myMap);

// 1. IGeoObject.
// Можно вести поиск относительно стороннего объекта.
var polyline = new ymaps.Polyline([[35, 65], [35, 66], [34, 62], [34, 63]]);
myMap.geoObjects.add(polyline);
var closestObject = result.getClosestTo(polyline);
// Можно искать по объекту из этой же выборки.
var closestToFirst = result.getClosestTo(result.get(0));

// 2. IGeometry.
var closestToGeometry = result.getClosestTo(placemark.geometry);

// 3. Map.
// Найдем объект, ближайший к границе видимой области карты.
var edgeObject = result.getClosestTo(myMap);

// 4. Объект, ближайщий к точке.
var closestObject = result.getClosestTo([34, 53]);
```

**2.**

```javascript
// Пример использования при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Париж')).addToMap(myMap);
// Дождемся ответа от сервера и получим объект, ближайший к точке.
result.then(function () {
    var closestObject = result.getClosestTo([34, 65]);
    // Если ответ пуст, то ближайший объект не найдется.
    if (closestObject) {
        closestObject.balloon.open();
    }
});
```

### getExtreme

```javascript
{Number} getExtreme(key)
```

Метод, возвращающий максимальные и минимальные значения координат
среди координат объектов выборки.

**Returns** соответствующее значение координаты.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `key`[*](*parametr) | — | Тип: String

Ключ для получения данных. Может принимать следующие значения:
• top;

• right;

• bottom;

• left. ||
|#

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

**Примеры:**

**1.**

```javascript
// Пример работы при синхронных операциях.
alert('Самая северная координата: ', ymaps.geoQuery(myMap.geoObjects).getExtreme('top'));
```

**2.**

```javascript
// Пример работы при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Новгород'));
// Дождемся ответа от сервера и получим самую северную координату.
result.then(function () {
    alert('Самая северная координата в ответе: ', result.getExtreme('top'));
});
```

### getExtremeObject

```javascript
{IGeoObject} getExtremeObject(key)
```

Метод, возвращающий объект с минимальной или максимальной координатой
среди координат объектов выборки.

**Returns** объект с требуемой координатой.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `key`[*](*parametr) | — | Тип: String

Ключ для получения данных. Может принимать следующие значения:
• top;

• right;

• bottom;

• left. ||
|#

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

**Примеры:**

**1.**

```javascript
// Пример работы при синхронных операциях.
// Откроем балун на самом северном объекте.
var topObject = ymaps.geoQuery(myMap.geoObjects).getExtremeObject('top');
topObject.balloon.open();
```

**2.**

```javascript
// Пример работы при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('море Лаптевых'));
// Нужно дождаться ответа от сервера, чтобы работать с данными.
result.then(function () {
    var topObject = result.getExtremeObject('top');
    // Если ответ пуст, то объект не найдется.
    if (topObject) {
        topObject.balloon.open();
    }
});
```

### getGlobalPixelBounds

```javascript
{Number[][]|null} getGlobalPixelBounds(map)
```

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

**Returns** глобальные пиксельные координаты области, охватывающей объекты результата.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `map`[*](*parametr) | — | Тип: [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md)

Карта, для которой нужно произвести расчеты. ||
|#

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

**Пример:**

```javascript
var result = ymaps.geoQuery(placemarks).search('properties.type="shop"').getGlobalPixelBounds(myMap);
if (Math.abs(result[0][0] - result[1][0]) > myMap.container.getSize()[0]) {
   alert('Объекты не поместятся на карту по ширине!');
}
```

### getGlobalPixelCenter

```javascript
{Number[]} getGlobalPixelCenter(map)
```

Метод, возвращающий центр области, охватывающей объекты результата,
в глобальных пиксельных координатах для текущего зума карты.

**Returns** координаты центра области в глобальных пиксельных координатах.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `map`[*](*parametr) | — | Тип: [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md)

Карта, для которой нужно произвести расчеты. ||
|#

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

**Пример:**

```javascript
// Посчитаем номер тайла, на который приходится центр области, охватывающей результат.
var globalPixelCenter = ymaps.geoQuery(objects).getGlobalPixelCenter(myMap),
    tileNumber = [
        Math.floor(globalPixelCenter[0] / 256),
        Math.floor(globalPixelCenter[1] / 256)
    ];
alert('Номер центрального тайла: ' + tileNumber[0] + ' ' + tileNumber[1]);
```

### getIterator

```javascript
{IIterator} getIterator()
```

**Returns** итератор по объектам результата.

**Примеры:**

**1.**

```javascript
// Использование итератора при синхронных операциях.
// Поиск элементов, на которые попадают координаты клика.
myMap.events.add('click', function (event) {
    var iterator = ymaps.geoQuery(myMap.geoObjects)
            .searchContaining(event.getCoordinates())
            .getIterator(),
        obj;
   while (obj = iterator.getNext()) {
       // Совершаем необходимые действия над геообъектом.
   } 
});
```

**2.**

```javascript
// Использование итератора при асинхронных операциях.
// Создадим результат из запроса к геокодеру.
var result = ymaps.geoQuery(ymaps.geocode("Староколпакский переулок")).search("lat > 20");
// Обратите внимание, что мы только отправили запрос к серверу, ответ придет чуть позже.
// Поскольку запрос асинхронный, нужно дождаться его готовности перед получением результата.
result.then(function () {
    var iterator = result.getIterator(),
        obj;
    while (obj = iterator.getNext()) {
        // Совершаем необходимые действия над геообъектом.  
    }
    
});
```

### getLength

```javascript
{Number} getLength()
```

**Returns** количество элементов в результате.

**Примеры:**

**1.**

```javascript
var result = ymaps.geoQuery(myMap.geoObject).searchIntersect(myPolygon);
alert('Количество геообъектов, пересекающих многоугольник: ' + result.getLenght());
```

**2.**

```javascript
var result = ymaps.geoQuery(ymaps.geocode('Иваново')).searchInside(myMap);
// Поскольку мы отправили запрос на сервер, сразу посчитать количество элементов
// в результате нельзя. Нужно дождаться ответа.
result.then(function () {
    alert('Количество объектов в видимой области карты: ' + result.getLength());
});
```

### getMaxZoom

```javascript
{Number} getMaxZoom(map)
```

Метод, вычисляющий максимальный коэффициент масштабирования, при котором в видимую
область карты попадают все объекты.

**Returns** максимальный коэффициент масштабирования карты.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `map`[*](*parametr) | — | Тип: [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md)

Карта, для которой ведется расчет. ||
|#

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

**Пример:**

```javascript
// Вычислим максимальный коэффициент масштабирования,
// при котором видны все объекты выборки
// и выставим ограничение для карты.
var maxZoom = ymaps.geoQuery(objects).getMaxZoom();
myMap.options.set('maxZoom', maxZoom);
```

### indexOf

```javascript
{Number} indexOf(item)
```

**Returns** индекс элемента в выборке. Если элемент не найден, возвращается -1.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `item`[*](*parametr) | — | Тип: [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md)

Искомый объект. ||
|#

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

**Пример:**

```javascript
// Отсортируем выборку по полю name.
var result = ymaps.geoQuery(polygons).sort('properties.name');
alert('Новая позиция первого элемента: ' + result.indexOf(polygons[0]));
```

### intersect

```javascript
{GeoQueryResult} intersect(result)
```

Метод создает новую выборку, содержащую общие элементы
для двух других выборок.

**Returns** новую выборку, содержащую результат пересечения.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `result`[*](*parametr) | — | Тип: [GeoQueryResult](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoQueryResult.md)

Выборка, с которой пересекают исходную. ||
|#

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

**Примеры:**

**1.**

```javascript
// Пример пересечения при синхронных операциях.
var result = ymaps.geoQuery(placemarks),
    greenObjects = result.search('properties.color="green"'),
    roundObjects = result.search('properties.shape="round"'),
    greenRoundObjects = greenObjects.intersect(roundObjects);
alert('Количество круглых зеленых объектов: ' + greenRoundObjects.getLength());
```

**2.**

```javascript
// Пример пересечения при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Ивановка')),
    filteredByLat = result.search('lat > 56'),
    filteredByLong = result.search('long > 36'),
    intersectedResult = filteredByLat.intersect(filteredByLong);
// Поскольку исходный запрос асинхронный, нужно дождаться готовности данных.
intersectedResult.then(function () {
    alert('Количество объектов с именем "Ивановка"' +
        'с координатами более [56, 36]: ' +
        intersectedResult.getLength());
});
```

### isReady

```javascript
{Boolean} isReady()
```

Метод, возвращающий признак готовности выборки.

**Returns** признак, готовы результаты выборки или еще обрабатываются.

**Пример:**

```javascript
var result = ymaps.geoQuery(ymaps.geocode('Иваново'));
if (!result.isReady()) {
    result.then(function () {
        // Обработка данных.
    });
} else {
    // Обработка данных. 
}
```

### map

```javascript
{GeoQueryResult} map(callback[, context])
```

Метод, вызывающий метод callback для всех элементов выборки
и формирующий новую выборку на основе полученных результатов.

**Returns** новую выборку.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `callback`[*](*parametr) | — | Тип: Function

Функция-обработчик. Принимает на вход элемент
выборки. Возвращает экземпляр [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md). ||
|| `context` | — | Тип: Object

Контекст выполнения функции-обработчика. ||
|#

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

**Пример:**

```javascript
// Добавим на карту только объекты-окружности.
var circlesResult = ymaps.geoQuery(objects).search('geometry.type="Circle"').addToMap(myMap),
// Также добавим на карту метки, обозначающие центры окружностей.
    centers = circlesResult.map(function (object) {
        return new ymaps.Placemark(object.geometry.getCenter());
    }).addToMap(myMap);
```

### remove

```javascript
{GeoQueryResult} remove(objects)
```

Удаляет объекты из результата.
Не изменяет исходный объект, а создает новый, содержащий результирующий набор геообъектов.

**Returns** новый объект с результирующим набором геообъектов.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `objects`[*](*parametr) | — | Тип: Object

Объекты могут быть представлены в разном виде:

• IGeoObject - объект, реализующий соответствующий интерфейс;

• IGeoObject[] - массив объектов, реализующих соответствующий интерфейс;

• ICollection - коллекция объектов, реализующих интерфейс IGeoObject;

• ICollection[] - массив коллекций объектов, реализующих интерфейс IGeoObject;

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

• util.Promise - объект класса util.Promise. Должен быть зарезовлен массивом геообъектов или объектом с полем geoObjects. ||
|#

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

**Примеры:**

**1.**

```javascript
var objects = [
        new ymaps.Placemark([34, 56]),
        new ymaps.Rectangle([[34, 56], [36, 57]])
    ],
    result = ymaps.geoQuery(objects);
// Обратите внимание, что в результате будет получен другой объект GeoQueryResult,
// а старый останется без изменений.
var newResult = result.remove(objects[1]);
```

**2.**

```javascript
// Удаление из GeoQueryResult массива геообъектов.
var objects = [
        new ymaps.Placemark([34, 56]),
        new ymaps.Rectangle([[34, 56], [36, 57]]),
        new ymaps.Placemark([35, 64])
    ],
    result = ymaps.geoQuery(objects);
// Обратите внимание, что в результате будет получен другой объект GeoQueryResult,
// а старый останется без изменений.
var newResult = result.remove([objects[1], objects[2]]);
```

**3.**

```javascript
// Удаление из GeoQueryResult коллекции геообъектов.
// Добавим на карту объекты, которых там еще нет.
myGeoQueryResult.remove(myMap.geoObjects).addToMap(myMap);
```

**4.**

```javascript
// Удаление из GeoQueryResult данных другого GeoQueryResult.
var result1 = ymaps.geoQuery(placemarks).search('properties.color="green"'),
    result2 = ymaps.geoQuery(placemarks).search('properties.shape="circle"'),
    result3 = result1.remove(result2);
alert('Количество зеленых некруглых фигур: ' + result3.getLength());
```

### removeEvents

```javascript
{} removeEvents(events, callback, context)
```

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

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `events`[*](*parametr) | — | Тип: String\|String[]

Тип или массив типов событий, на которые была сделана подписка. ||
|| `callback`[*](*parametr) | — | Тип: Function

Функция-обработчик, которую указали при подписке. ||
|| `context`[*](*parametr) | — | Тип: Object

Контекст, который был указан при подписке. ||
|#

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

**Пример:**

```javascript
var callback = function () {
        alert('Вы кликнули по кругу!');
    };
ymaps.geoQuery(map.geoObjects).search('geometry.type="Circle"').addEvents('click', callback);
// ...
ymaps.geoQuery(map.geoObjects).search('geometry.type="Circle"').removeEvents('click', callback);
```

### removeFrom

```javascript
{GeoQueryResult} removeFrom(collection)
```

Метод для удаления объектов из коллекции.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `collection`[*](*parametr) | — | Тип: [ICollection](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ICollection.md)

Коллекция, из которой нужно удалить объекты. ||
|#

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

**Пример:**

```javascript
// Покажем на карте все объекты.
var result1 = ymaps.geoQuery(placemarks).addTo(myMap.geoObjects),
    // А затем скроем объекты из северного полушария.
    result2 = result1.search('lat > 0').removeFrom(myMap.geoObjects);
```

### removeFromMap

```javascript
{GeoQueryResult} removeFromMap(map)
```

Метод для удаления объектов с карты.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `map`[*](*parametr) | — | Тип: [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md)

Карта, с которой нужно удалить объекты. ||
|#

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

**Пример:**

```javascript
// Покажем на карте все объекты.
var result1 = ymaps.geoQuery(placemarks).addToMap(myMap),
// А затем скроем объекты из северного полушария.
    result2 = result1.search('lat > 0').removeFromMap(myMap);
```

### reverse

```javascript
{GeoQueryResult} reverse()
```

Переставляет элементы выборки в обратном порядке и возвращает новую выборку.

**Returns** новую выборку с элементами в обратном порядке.

**Примеры:**

**1.**

```javascript
// Использование при синхронных запросах.
var result = ymaps.geoQuery(myMap.geoObjects).sort('x'),
    invertedResult = result.reverse();
```

**2.**

```javascript
// Использование при асинхронных запросах.
var result = ymaps.geoQuery(ymaps.geocode('село Добрые пчелы')).sort('x'),
    invertedResult = result.reverse();
invertedResult.then(function () {
    // Результат получен, можно начинать пользоваться.
});
```

### search

```javascript
{GeoQueryResult} search(condition)
```

Метод для поиска объектов выбоки, удовлетворяющих условиям.

**Returns** новую выборку, содержащую результаты поиска.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `condition`[*](*parametr) | — | Тип: String\|Function

Строковый шаблон для поиска или функция-фильтр.
Строковый шаблон имеет структуру "<fieldname> <condition> <expression>".
Возможные значения <fieldname>:
• 'lat' - широта. Поддерживается только для точечных объектов;

• 'lng', 'long' - долгота. Поддерживается только для точечных объектов;

• 'x' - глобальные пиксельные координаты по оси x. Поддерживается только для точечных объектов;

• 'y' - глобальные пиксельные координаты по оси y. Поддерживается только для точечных объектов;

• 'geometry.type' - тип геометрии, результат выполнения метода geometry.getType();

• 'geometry.coordinates.<index>' - координаты, результат выполнения метода geometry.getCoordinates(). Для получения доступа к координате следует указывать ее индексы через точку - 'geometry.coordinates.0.1';

• 'properties.<path>' - значение поля данных;

• 'options.<key>' - значение опции.

Возможные значения <condition>:

• '>';

• '>=';

• '==', '=';

• '!=';

• '<=';

• '<';

• 'rlike', 'regexp' - соответствие значения <fieldname> некоторому регулярному выражению.

Возможные значения <expression>:

• Число;

• Строка - обязательно указывается в кавычках;

• true;

• false;

• null;

• undefined.

Функция-фильтр принимает на вход объект из выборки и возвращает true/false.
True - объект попадет в результирующую выборку, false - не попадет. ||
|#

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

**Примеры:**

**1.**

```javascript
// Пример поиска объектов при синхронных операциях.
var result = ymaps.geoQuery(myMap.geoObjects);

     // Поиск объектов с определенным типом геометрии. Обратите внимание, что
// значение поля указано в кавычках - это строка.
result.search('geomtry.type = "Circle"')
// Поиск по координате.
    .search('geometry.coordinates.0 > 100')
// Поиск по широте.
    .search('lat < 0')
// Поиск по пиксельным координатам.
    .search('x >= 100')
// Поиск по значению поля в properties.
    .search('properties.name != null').search('properties.name rlike "(.) \\""')
    .search('properties.author.name = "Степан"')
// Поиск по значению опции.
    .search('options.visible = true');
```

**2.**

```javascript
// Использование метода при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Лось'));
// Для работы с результатом нужно дождаться его готовности.
result.then(function () {
    result.search('properties.description regExp "*поселок*"')
        .addToMap(myMap)
        .applyBoundsToMap(myMap);
});
```

### searchContaining

```javascript
{GeoQueryResult} searchContaining(object)
```

Метод, создающий новую выборку из объектов, содержащих указанный объект.
Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов.

**Returns** новую выборку, содержащую искомые объекты.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `object`[*](*parametr) | — | Тип: Object

Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
• IGeoObject - объект, реализующий интефейс [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md);

• IGeometry - объект, реализующий интерфейс [IGeometry](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeometry.md);

• Map - карта. В этом случае опорным объектом будет прямоугольная граница карты;

• Number[] - координаты точки. Если передан один параметр, трактуется как точка. Если передано два аргумента, трактуется как центр окружности;

• Number[][] - координаты прямоугольной области;

• Object - Json-описания геометрии. ||
|#

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

**Примеры:**

**1.**

```javascript
// Примеры использования метода при различных входных данных.
var result = ymaps.geoQuery(objects).addToMap(myMap);

// 1. IGeoObject.
var polygon = new ymaps.Polygon([[[35, 65], [35, 66], [34, 62], [34, 63], [35, 65]]]);
myMap.geoObjects.add(polygon);
var objectsContainingPolygon = result.searchContaining(polygon);

// 2. IGeometry.
var objectsContainingGeometry = result.searchContaining(polygon.geometry);

// 3. Map.
var objectsContainingMapBounds = result.searchContaining(myMap);
```

**2.**

```javascript
// Пример использования при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('кафе'))
        .addToMap(myMap);
// Дождемся ответа от сервера перед обработкой результатов.
result.then(function () {
    var areas = result.map(function (object) {
                return new ymaps.Circle(object.geometry.getCoordinates(), 100);
            })
            .setOptions('visible', false)
            .addToMap(myMap);
    myMap.events.add('click', function (event) {
        if (areas.searchContaining(event.getCoordinates()).getLength()) {
            alert('Вы кликнули около кафе.');
        }
    });
});
```

### searchInside

```javascript
{GeoQueryResult} searchInside(object)
```

Метод, создающий новую выборку из объектов, целиком входящих в указанный объект.
Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов.

**Returns** новую выборку, содержащую искомые объекты.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `object`[*](*parametr) | — | Тип: Object

Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
• IGeoObject - объект, реализующий интефейс [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md);

• IGeometry - объект, реализующий интерфейс [IGeometry](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeometry.md);

• Map - карта. В этом случае опорным объектом будет прямоугольная граница карты. ||
|#

**Примеры:**

**1.**

```javascript
// Примеры использования метода при различных входных данных.
var result = ymaps.geoQuery(objects).addToMap(myMap);

// 1. IGeoObject.
var polygon = new ymaps.Polygon([[[35, 65], [35, 66], [34, 62], [34, 63], [35, 65]]]);
myMap.geoObjects.add(polygon);
var objectsInsidePolygon = result.searchInside(polygon);

// 2. IGeometry.
var objectsInsideGeometry = result.searchInside(polygon.geometry);

// 3. Map.
// Найдем объекты, целиком лежащие в видимой области карты.
var visibleObject = result.searchInside(myMap);
```

**2.**

```javascript
// Пример использования при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Иваново'))
        .setOptions('visible', false)
        .addToMap(myMap);
// Дождемся ответа от сервера и покажем объекты, попадающие в видимую область карты.
result.then(function () {
    result.searchInside(myMap).setOptions('visible', true);
});
```

### searchIntersect

```javascript
{GeoQueryResult} searchIntersect(object[, options])
```

Метод, создающий новую выборку из объектов, пересекающих указанный объект.
Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов.

**Returns** новую выборку, содержащую искомые объекты.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `object`[*](*parametr) | — | Тип: Object

Объект, относительно которого
будет производится поиск. Может принимать следующие значения:

• IGeoObject - объект, реализующий интефейс [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md);

• IGeometry - объект, реализующий интерфейс [IGeometry](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeometry.md);

• Map - карта. В этом случае опорным объектом будет прямоугольная граница карты. ||
|| `options`| — | Тип: Object

Опции. ||
|| `options.considerOccurance` | true | Тип: Object

Флаг, показывающий, считаем ли мы пересечением, когда одна фигура полностью содержится в другой. ||
|#

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

**Примеры:**

**1.**

```javascript
// Примеры использования метода при различных входных данных.
var result = ymaps.geoQuery(objects).addToMap(myMap);

// 1. IGeoObject.
var polygon = new ymaps.Polygon([[[35, 65], [35, 66], [34, 62], [34, 63], [35, 65]]]);
myMap.geoObjects.add(polygon);
var objectsIntersectPolygon = result.searchIntersect(polygon);

// 2. IGeometry.
var objectsIntersectGeometry = result.searchIntersect(polygon.geometry);

// 3. Map.
// При этом будем искать только объекты, пересекающие непосредственно
// границы карты. То есть объекты, попадающие целиком в видимую область карты,
// не попадут в финальную выборку.
var objectsIntersectMapBounds = result.searchIntersect(myMap, {considerOccurance: false});
```

**2.**

```javascript
// Пример использования при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('кафе'))
        .setOptions('visible', false)
        .addToMap(myMap);
        
// Дождемся ответа от сервера и покажем объекты, попадающие в видимую область карты.
result.then(function () {
    result.searchIntersect(myMap).setOptions('visible', true);
});
```

### setOptions

```javascript
{GeoQueryResult} setOptions(key[, value])
```

Метод, позволяющий задать значение опций всем элементам выборки.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `key`[*](*parametr) | — | Тип: String\|Object

Название опции или хэш с опциями и их значениями. ||
|| `value` | — | Тип: Object

Значение опции. ||
|#

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

**Пример:**

```javascript
var result = ymaps.geoQuery(placemarks);
// Сделаем видимыми элементы, попадающие в прямоугольную область.
result.searchIntersect(myBounds).setOptions('visible', true);

// Зададим опции с помощью хэша.
result.setOptions({zIndex: 10, fillColor: '#ff0005'});
```

### setProperties

```javascript
{GeoQueryResult} setProperties(path, value)
```

Метод, позволяющий задать значение поля properties всем элементам выборки.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `path`[*](*parametr) | — | Тип: String

Имя поля, которому присваивается значение. Может содержать ".". ||
|| `value`[*](*parametr) | — | Тип: Object

Значение поля. ||
|#

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

**Пример:**

```javascript
var result = ymaps.geoQuery(objects);
// Пометим элементы, попадающие в области.
result.searchIntersect(myBounds1).setProperties('intersectBounds', true);
result.searchIntersect(myBounds2).setProperties('intersectBounds', true);
// ...
result.search('properties.intersectBounds = true').addToMap(myMap);
```

### slice

```javascript
{GeoQueryResult} slice(begin[, end])
```

Метод, возвращающий срез выборки.

**Returns** новую выборку, содержающую элементы среза.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `begin`[*](*parametr) | — | Тип: Number

Индекс начального элемента в срезе. ||
|| `end`[*](*parametr) | — | Тип: Number

Индекс элемента в выборке, на котором срез завершится. При этом последним в новом срезе будет элемент с индексом end-1. ||
|#

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

**Примеры:**

**1.**

```javascript
// Выполним срез при синхронной обработке.
var result = ymaps.geoQuery(map.geoObjects).slice(0, 10);
alert('Количество элементов в новой выборке:', result.getLength());
```

**2.**

```javascript
// Взятие среза при асинхронной обработке.
var result = ymaps.geoQuery(ymaps.geocode('кафе Москва')).slice(0, 10);
// Сразу после запроса результат еще не готов.
alert('Пока выборка пуста. Количество элементов в выборке: ' + result.getLength());
// Дождемся готовности результата и посмотрим, сколько элементов будет в выборке.
result.then(function () {
    alert('Ответ получен. Количество данных в выборке: ' + result.getLength());
});
```

### sort

```javascript
{} sort(comparator)
```

Метод для сортировки объектов выборки.
Не изменяет исходную выборку, а создает новую, содержащую упорядоченные
объекты.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `comparator`[*](*parametr) | — | Тип: String\|Function

Строка с шаблоном сортировки или функция-компаратор.
Строка-шаблон может быть представлена в виде '<fieldname> [<order>=asc]'.
Возможные значения <fieldname>:
• 'lat' - широта. Поддерживается только для точечных объектов;

• 'lng', 'long' - долгота. Поддерживается только для точечных объектов;

• 'x' - глобальные пиксельные координаты по оси x. Поддерживается только для точечных объектов;

• 'y' - глобальные пиксельные координаты по оси y. Поддерживается только для точечных объектов;

• 'geometry.type' - тип геометрии, результат выполнения метода geometry.getType();

• 'geometry.coordinates.<index>' - координаты, результат выполнения метода geometry.getCoordinates(). Для получения доступа к координате следует указывать ее индексы через точку - 'geometry.coordinates.0.1';

• 'properties.<path>' - значение поля данных;

• 'options.<key>' - значение опции.

Возможные значения необязательного параметра <order>:

• 'asc' - сортировка по возрастанию;

• 'desc' - сортировка по убыванию.

Функция-компаратор принимает на вход два элемента выборки.
Возвращаемые значения:
Если первый объект больше второго, функция возвращает значение > 0;
Если первый объект равен второму, функция возвращает 0;
Если первый объект меньше второго, функция возвращает < 0. ||
|#

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

**Пример:**

```javascript
// Пример использования при синхронных операциях.
var result = ymaps.geoQuery(myMap.geoObjects);
result.sort('lat').sort('x')
    .sort('properties.name desc')
    .sort('options.preset')
    .sort(function (a, b) {
        if (a.properties.get('name') == b.properties.get('name')) {
            return a.geometry.getCoordinates()[0] - b.geometry.getCoordinates()[0];
        } else {
            return (a.properties.get('name') > b.properties.get('name')) ? 1 : -1;
        }
    });
```

### sortByDistance

```javascript
{GeoQueryResult} sortByDistance(object, raduis)
```

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

**Returns** новую упорядоченную выборку.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `object`[*](*parametr) | — | Тип: Object

Объект, до которого будет считаться расстояние.
Может принимать следующие значения:
• IGeoObject - объект, реализующий интефейс [IGeoObject](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeoObject.md);

• IGeometry - объект, реализующий интерфейс [IGeometry](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IGeometry.md);

• Map - карта. В этом случае опорным объектом будет прямоугольная граница карты;

• Number[] - координаты точки;

• Number[][] - координаты прямоугольной области;

• Object - Json-описание геометрии. Содержит поля type и coordinates. При описании круга также необходимо поле radius. При описании многоугольника можно указывать необязательное поле fillRule. ||
|| `raduis`[*](*parametr) | — | Тип: ||
|#

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

**Примеры:**

**1.**

```javascript
// Примеры использования метода при различных входных данных.
var result = ymaps.geoQuery(objects).addToMap(myMap);

// 1. IGeoObject.
var polyline = new ymaps.Polyline([[35, 65], [35, 66], [34, 62], [34, 63]]);
myMap.geoObjects.add(polyline);
var sortedByPolyline = result.sortByDistance(polyline);

// 2. IGeometry.
var sortedByGeometry = result.sortByDistance(placemark.geometry);

// 3. Map.
var sortedByMapBounds = result.sortByDistance(myMap);

// 4. Выборка, отсортированная по точке.
var sortedByPoint = result.sortByDistance([34, 53]);
```

**2.**

```javascript
// Пример использования при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Париж')).addToMap(myMap).sortByDistance([45, 64]);
// Дождемся ответа от сервера и получим ближайший и наиболее удаленный
// объект по отношению к точке.
result.then(function () {
    alert('Ближайший объект имеет координаты ' + result.get(0).geometry.getCoordinates());
    alert('Наиболее удаленный объект имеет координаты ' + result.get(result.getLength() - 1).geometry.getCoordinates());
});
```

### then

```javascript
{GeoQueryResult} then([onResolve[, onReject]])
```

Подписка на "обещание".

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `onResolve` | — | Тип: Function

Функция-обработчик, которая вызывается, если обещание выполнено. ||
|| `onReject` | — | Тип: Function

Функция-обработчик, которая вызывается, если обещание не выполнено (произошла ошибка). ||
|#

**Пример:**

```javascript
var result = ymaps.geoQuery(ymaps.geocode('река Лена'));
result.then(function () {
    alert('Количество найденных объектов: ' + result.getLength());
}, function () {
    alert('Произошла ошибка.');
});
```

### unsetOptions

```javascript
{GeoQueryResult} unsetOptions(keys)
```

Метод, позволяющий обнулять значение опций всем элементам выборки.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `keys`[*](*parametr) | — | Тип: String\|String

Название или массив названий опций, которые должны быть аннулированы. ||
|#

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

**Пример:**

```javascript
result.unsetOptions('visible');
```

### unsetProperties

```javascript
{GeoQueryResult} unsetProperties(path)
```

Метод позволяющий обнулить значение поля properties у всех элементов выборки.

**Returns** ссылку на себя.

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `path`[*](*parametr) | — | Тип: String

Имя поля, значение которого нужно обнулить. Может содержать ".". ||
|#

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

**Пример:**

```javascript
var result = ymaps.geoQuery(objects);
// Пометим элементы, попадающие в первую область, но не попадающие во вторую.
result.searchIntersect(myBounds1).setProperties('intersectBounds', true);
result.searchIntersect(myBounds2).unsetProperties('intersectBounds', true);
// ...
result.search('properties.intersectBounds = true').addToMap(myMap);
```

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