GeoQueryResult
Расширяет IPromiseProvider.
Результат геозапроса.
Конструктор
GeoQueryResult(source)
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
source * | — | Тип: Object Источник геообъектов:
|
Параметр | Значение по умолчанию | Описание |
---|---|---|
source * | — | Тип: Object Источник геообъектов:
|
* Обязательный параметр/опция.
Примеры:
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 = geoQuery(myMap.geoObjects).searchIntersect(myMap);
alert("Количество геообъектов в видимой области карты: " + result.getLength());
4.
// Создание GeoQueryResult из util.Promise.
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: 'twirl#yellowIcon'
}
}
]
}
]
});
// Неточечные объекты добавим на карту как есть.
result.search('geometry.type != "Point"').addToMap(myMap);
// Точечные объекты добавим на карту через кластеризатор.
myMap.geoObjects.add(result.search('geometry.type == "Point"').clusterize());
Методы
Имя | Возвращает | Описание |
---|---|---|
add(source) | Добавляет объекты из источника к объектам результата. Не изменяет исходный объект, а создает новый, содержащий объединенный набор геообъектов. | |
addEvents(events, callback, context) | Навешивает обработчики событий на элементы выборки. | |
addTo(collection) | Метод для добавления объектов в коллекцию геообъектов. | |
addToMap(map) | Метод для добавления объектов на карту. | |
applyBoundsToMap(map[, options]) | Метод, позволяющий установить видимую область карты так, чтобы видны были все объекты из выборки. | |
clusterize([options]) | Метод создает кластеризатор и добавляет в него объекты из выборки. В случае, если данные выборки еще не готовы, они будут добавлены в кластеризатор сразу после обработки, а возвращенный кластеризатор изначально будет пуст. В кластеризатор будут добавлены только объекты с геометрией "Point". | |
each(callback, context) | Returns ссылку на себя. | |
get(index) | Метод возвращает элемент выборки по индексу. | |
getBounds() | Number[][]|null | Returns географические координаты области, охватывающей объекты результата. |
getCenter(map) | Number[] | Метод, возвращающий центр области, охватывающей объекты результата, в географических координатах. |
getCentralObject(map) | IGeoObject|null | Метод для получения объекта, наиболее близкого к центру видимой области карты. |
getClosestTo(object[, radius]) | IGeoObject|null | Метод, возвращающий объект выборки, ближайший к указанному. Если на вход подается объект, уже находящийся в выборке, то вернется другой объект выборки, ближайший к указанному. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. |
getExtreme(key) | Number | Метод, возвращающий максимальные и минимальные значения координат среди координат объектов выборки. |
getExtremeObject(key) | Метод, возвращающий объект с минимальной или максимальной координатой среди координат объектов выборки. | |
getGlobalPixelBounds(map) | Number[][]|null | Метод, возвращающий глобальные пиксельные координаты области для текущего зума карты. |
getGlobalPixelCenter(map) | Number[] | Метод, возвращающий центр области, охватывающей объекты результата, в глобальных пиксельных координатах для текущего зума карты. |
getIterator() | Returns итератор по объектам результата. | |
getLength() | Number | Returns количество элементов в результате. |
getMaxZoom(map) | Number | Метод, вычисляющий максимальный коэффициент масштабирования, при котором в видимую область карты попадают все объекты. |
indexOf(item) | Number | Returns индекс элемента в выборке. Если элемент не найден, возвращается -1. |
intersect(result) | Метод создает новую выборку, содержащую общие элементы для двух других выборок. | |
isReady() | Boolean | Метод, возвращающий признак готовности выборки. |
map(callback[, context]) | Метод, вызывающий метод callback для всех элементов выборки и формирующий новую выборку на основе полученных результатов. | |
remove(objects) | Удаляет объекты из результата. Не изменяет исходный объект, а создает новый, содержащий результирующий набор геообъектов. | |
removeEvents(events, callback, context) | Удаляет подписку на событие с объекта. Обратите внимание, что для корректной отписки передаваемые аргументы должны быть точно такие же, как при подписке через метод addEvents. | |
removeFrom(collection) | Метод для удаления объектов из коллекции. | |
removeFromMap(map) | Метод для удаления объектов с карты. | |
reverse() | Переставляет элементы выборки в обратном порядке и возвращает новую выборку. | |
search(condition) | Метод для поиска объектов выбоки, удовлетворяющих условиям. | |
searchContaining(object) | Метод, создающий новую выборку из объектов, содержащих указанный объект. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. | |
searchInside(object) | Метод, создающий новую выборку из объектов, целиком входящих в указанный объект. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. | |
searchIntersect(object[, options]) | Метод, создающий новую выборку из объектов, пересекающих указанный объект. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. | |
setOptions(key[, value]) | Метод, позволяющий задать значение опций всем элементам выборки. | |
setProperties(path, value) | Метод, позволяющий задать значение поля properties всем элементам выборки. | |
slice(begin[, end]) | Метод, возвращающий срез выборки. | |
sort(comparator) | Метод для сортировки объектов выборки. Не изменяет исходную выборку, а создает новую, содержащую упорядоченные объекты. | |
sortByDistance(object, raduis) | Метод, позволяющий получить выборку, содержащую объекты, отсортированные по расстоянию до указанного объекта. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. Не изменяет исходную выборку. | |
then([onResolve[, onReject]]) | Подписка на "обещание". | |
unsetOptions(keys) | Метод, позволяющий обнулять значение опций всем элементам выборки. | |
unsetProperties(path) | Метод позволяющий обнулить значение поля properties у всех элементов выборки. |
Имя | Возвращает | Описание |
---|---|---|
add(source) | Добавляет объекты из источника к объектам результата. Не изменяет исходный объект, а создает новый, содержащий объединенный набор геообъектов. | |
addEvents(events, callback, context) | Навешивает обработчики событий на элементы выборки. | |
addTo(collection) | Метод для добавления объектов в коллекцию геообъектов. | |
addToMap(map) | Метод для добавления объектов на карту. | |
applyBoundsToMap(map[, options]) | Метод, позволяющий установить видимую область карты так, чтобы видны были все объекты из выборки. | |
clusterize([options]) | Метод создает кластеризатор и добавляет в него объекты из выборки. В случае, если данные выборки еще не готовы, они будут добавлены в кластеризатор сразу после обработки, а возвращенный кластеризатор изначально будет пуст. В кластеризатор будут добавлены только объекты с геометрией "Point". | |
each(callback, context) | Returns ссылку на себя. | |
get(index) | Метод возвращает элемент выборки по индексу. | |
getBounds() | Number[][]|null | Returns географические координаты области, охватывающей объекты результата. |
getCenter(map) | Number[] | Метод, возвращающий центр области, охватывающей объекты результата, в географических координатах. |
getCentralObject(map) | IGeoObject|null | Метод для получения объекта, наиболее близкого к центру видимой области карты. |
getClosestTo(object[, radius]) | IGeoObject|null | Метод, возвращающий объект выборки, ближайший к указанному. Если на вход подается объект, уже находящийся в выборке, то вернется другой объект выборки, ближайший к указанному. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. |
getExtreme(key) | Number | Метод, возвращающий максимальные и минимальные значения координат среди координат объектов выборки. |
getExtremeObject(key) | Метод, возвращающий объект с минимальной или максимальной координатой среди координат объектов выборки. | |
getGlobalPixelBounds(map) | Number[][]|null | Метод, возвращающий глобальные пиксельные координаты области для текущего зума карты. |
getGlobalPixelCenter(map) | Number[] | Метод, возвращающий центр области, охватывающей объекты результата, в глобальных пиксельных координатах для текущего зума карты. |
getIterator() | Returns итератор по объектам результата. | |
getLength() | Number | Returns количество элементов в результате. |
getMaxZoom(map) | Number | Метод, вычисляющий максимальный коэффициент масштабирования, при котором в видимую область карты попадают все объекты. |
indexOf(item) | Number | Returns индекс элемента в выборке. Если элемент не найден, возвращается -1. |
intersect(result) | Метод создает новую выборку, содержащую общие элементы для двух других выборок. | |
isReady() | Boolean | Метод, возвращающий признак готовности выборки. |
map(callback[, context]) | Метод, вызывающий метод callback для всех элементов выборки и формирующий новую выборку на основе полученных результатов. | |
remove(objects) | Удаляет объекты из результата. Не изменяет исходный объект, а создает новый, содержащий результирующий набор геообъектов. | |
removeEvents(events, callback, context) | Удаляет подписку на событие с объекта. Обратите внимание, что для корректной отписки передаваемые аргументы должны быть точно такие же, как при подписке через метод addEvents. | |
removeFrom(collection) | Метод для удаления объектов из коллекции. | |
removeFromMap(map) | Метод для удаления объектов с карты. | |
reverse() | Переставляет элементы выборки в обратном порядке и возвращает новую выборку. | |
search(condition) | Метод для поиска объектов выбоки, удовлетворяющих условиям. | |
searchContaining(object) | Метод, создающий новую выборку из объектов, содержащих указанный объект. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. | |
searchInside(object) | Метод, создающий новую выборку из объектов, целиком входящих в указанный объект. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. | |
searchIntersect(object[, options]) | Метод, создающий новую выборку из объектов, пересекающих указанный объект. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. | |
setOptions(key[, value]) | Метод, позволяющий задать значение опций всем элементам выборки. | |
setProperties(path, value) | Метод, позволяющий задать значение поля properties всем элементам выборки. | |
slice(begin[, end]) | Метод, возвращающий срез выборки. | |
sort(comparator) | Метод для сортировки объектов выборки. Не изменяет исходную выборку, а создает новую, содержащую упорядоченные объекты. | |
sortByDistance(object, raduis) | Метод, позволяющий получить выборку, содержащую объекты, отсортированные по расстоянию до указанного объекта. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. Не изменяет исходную выборку. | |
then([onResolve[, onReject]]) | Подписка на "обещание". | |
unsetOptions(keys) | Метод, позволяющий обнулять значение опций всем элементам выборки. | |
unsetProperties(path) | Метод позволяющий обнулить значение поля properties у всех элементов выборки. |
Описание методов
add
{GeoQueryResult} add(source)
Добавляет объекты из источника к объектам результата. Не изменяет исходный объект, а создает новый, содержащий объединенный набор геообъектов.
Returns новый объект с объединенным набором геообъектов.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
source * | — | Тип: Object Источник геообъектов:
|
Параметр | Значение по умолчанию | Описание |
---|---|---|
source * | — | Тип: Object Источник геообъектов:
|
* Обязательный параметр/опция.
Примеры:
1.
// Добавление в GeoQueryResult одиночного геообъекта.
var placemark = new ymaps.Placemark([34, 56]);
myGeoQueryResult.add(placemark);
2.
// Добавление в GeoQueryResult массива геообъектов.
var objects = [
new ymaps.Placemark([34, 56]),
new ymaps.Rectangle([[34, 56], [36, 57]])
];
// Обратите внимание, что в результате будет получен другой объект GeoQueryResult,
// а старый останется без изменений.
var newResult = myGeoQueryResult.add(objects);
3.
// Добавление в GeoQueryResult коллекции геообъектов.
// Обратите внимание, что в результате будет получен другой объект GeoQueryResult,
// а старый останется без изменений.
var newResult = myGeoQueryResult.add(myMap.geoObjects).searchIntersect(myBounds);
alert("Количество геообъектов в указанной области: " + myGeoQueryResult.getLength());
4.
// Добавление в GeoQueryResult результатов геокодирования.
// Обратите внимание, что в результате будет получен другой объект GeoQueryResult,
// а старый останется без изменений.
var newResult = myGeoQueryResult.add(ymaps.geocode('Сыромятнический переулок'));
newResult.searchInside(myGeoBounds);
// Поскольку источник данных асинхронный, нужно дождаться обработки результата.
result.then(function () {
// Исходный объект все еще существует.
alert('Было объектов до добавления:' + myGeoQueryResult.getLenght());
// В новом объекте уже и старые геообъекты, и добавленные.
alert('Стало объектов после добавления: ' + result.getLength());
});
5.
// Добавление объектов из JSON-строки.
var result = ymaps.geoQuery(myMap.geoObjects),
extendedResult = result.add('{"type": "Feature", "geometry": { "type": "Point", "coordinates": [15, 64] }}');
extendedResult.addToMap(myMap);
addEvents
{GeoQueryResult} addEvents(events, callback, context)
Навешивает обработчики событий на элементы выборки.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
events * | — | Тип: String|String[] Тип или массив типов событий, на которые совершается подписка. |
callback * | — | Тип: Function Функция-обработчик. |
context * | — | Тип: Object Контекст выполнения функции-обработчика. |
* Обязательный параметр/опция.
Пример:
ymaps.geoQuery(map.geoObjects).search('geometry.type="Circle"').addEvents('click', function () {
alert('Вы кликнули по кругу!');
});
addTo
{GeoQueryResult} addTo(collection)
Метод для добавления объектов в коллекцию геообъектов.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
collection * | — | Тип: ICollection Коллекция, в которую добавляются объекты. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
collection * | — | Тип: ICollection Коллекция, в которую добавляются объекты. |
* Обязательный параметр/опция.
Пример:
// Покажем на карте объекты северного полушария.
var result1 = ymaps.geoQuery(placemarks).search('lat > 0').addTo(myMap.geoObjects);
addToMap
{GeoQueryResult} addToMap(map)
Метод для добавления объектов на карту.
Returns ссылку на себя.
Параметры:
* Обязательный параметр/опция.
Пример:
// Покажем на карте объекты северного полушария.
var result1 = ymaps.geoQuery(placemarks).search('lat > 0').addToMap(myMap);
applyBoundsToMap
{GeoQueryResult} applyBoundsToMap(map[, options])
Метод, позволяющий установить видимую область карты так, чтобы видны были все объекты из выборки.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
map * | — | Тип: Map Карта. |
options | — | Тип: Object Опции. |
options.checkZoomRange | false | Тип: Boolean Проверка возможности установить указанный коэффициент масштабирования. Если значение опции равно true, метод вызывается асинхронно. Производится обращение к серверу, который возвращает интервал допустимых для данного центра значений коэффициентов масштабирования. После этого выставляется указанный центр и корректный зум. |
options.duration | 0 | Тип: Number Время анимации в миллисекундах. |
options.preciseZoom | false | Тип: Boolean Возможность использования дробных коэффициентов масштабирования. |
options.timingFunction | — | Тип: Function Тайминг-функция. |
options.zoomMargin | 0 | Тип: Number|Number[] Отступы от границ видимой области карты. Если задано одно число - оно применяется ко всем сторонам. Если задано два - то это горизонтальные и вертикальные отступы соответственно. Если задан массив из 4х чисел, то это отступы top, right, bottom, left. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
map * | — | Тип: Map Карта. |
options | — | Тип: Object Опции. |
options.checkZoomRange | false | Тип: Boolean Проверка возможности установить указанный коэффициент масштабирования. Если значение опции равно true, метод вызывается асинхронно. Производится обращение к серверу, который возвращает интервал допустимых для данного центра значений коэффициентов масштабирования. После этого выставляется указанный центр и корректный зум. |
options.duration | 0 | Тип: Number Время анимации в миллисекундах. |
options.preciseZoom | false | Тип: Boolean Возможность использования дробных коэффициентов масштабирования. |
options.timingFunction | — | Тип: Function Тайминг-функция. |
options.zoomMargin | 0 | Тип: Number|Number[] Отступы от границ видимой области карты. Если задано одно число - оно применяется ко всем сторонам. Если задано два - то это горизонтальные и вертикальные отступы соответственно. Если задан массив из 4х чисел, то это отступы top, right, bottom, left. |
* Обязательный параметр/опция.
Примеры:
1.
// Сделаем запрос на геокодирование и выставим карте видимую область так,
// чтобы на ней были видны сразу все результаты.
var result = ymaps.geoQuery(ymaps.geocode('улица Ленина')).applyBoundsToMap(myMap);
// Обратите внимание, что запрос на сервер асинхронный, нужно дождаться результата.
result.then(function () {
alert("Результаты получены и видимая область карты скорректирована.");
}, function () {
alert("Произошла ошибка.");
});
2.
// Для синхронных запросов выставление новой области карты происходит сразу.
var result = ymaps.geoQuery(objects).applyBoundsToMap(myMap);
alert('Видимая область карты изменена.');
clusterize
Метод создает кластеризатор и добавляет в него объекты из выборки. В случае, если данные выборки еще не готовы, они будут добавлены в кластеризатор сразу после обработки, а возвращенный кластеризатор изначально будет пуст. В кластеризатор будут добавлены только объекты с геометрией "Point".
Returns кластеризатор.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
options | — | Тип: Object Опции, передаваемые в конструктор объекта Clusterer. |
Пример:
// Выберем только кафе и добавим их в кластеризатор.
var clusterer = ymaps.geoQuery(objects).search('properties.type="Cafe"').clusterize();
myMap.geoObjects.add(clusterer);
each
{GeoQueryResult} each(callback, context)
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
callback * | — | Тип: Function Функция-обработчик. Вызывается для каждого элемента выборки и получает его на вход. |
context * | — | Тип: Object Контекст выполнения функции-обработчика. |
* Обязательный параметр/опция.
Пример:
// Скроем красные метки в видимой области карты.
ymaps.geoQuery(placemarks).searchIntersect(myMap).each(function(pm) {
if (pm.options.get('preset') == 'twirl#redIcon') {
myMap.geoObjects.remove(pm);
}
});
get
{IGeoObject} get(index)
Метод возвращает элемент выборки по индексу.
Returns объект.
Параметры:
* Обязательный параметр/опция.
Примеры:
1.
// Пример при синхронной обработке.
var result = ymaps.geoQuery(placemarks).sort('lat'),
// Самый южный объект.
southObject = result.get(0),
// Самый северный объект.
northObject = rosult.get(result.getLength() - 1);
2.
// Пример при асинхронной обработке.
var result = ymaps.geoQuery(ymaps.geocode('кафе Москва')).sort('lat');
// Нужно дождаться готовности результата для дальнейшей обработки.
result.then(function () {
// Самый южный объект.
var southObject = result.get(0),
// Самый северный объект.
northObject = result.get(result.getLength() - 1);
});
getBounds
{Number[][]|null} getBounds()
Returns географические координаты области, охватывающей объекты результата.
Пример:
// Устанавливаем центр и масштаб карты так, чтобы отобразить весь результат целиком.
myMap.setBounds(myResult.getBounds());
getCenter
{Number[]} getCenter(map)
Метод, возвращающий центр области, охватывающей объекты результата, в географических координатах.
Returns координаты центра области в географических координатах.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
map * | — | Тип: Map Карта, для которой нужно произвести расчеты. |
* Обязательный параметр/опция.
Пример:
// Сместим центр карты в центр области, охватывающей объекты.
myMap.setCenter(ymaps.geoQuery(objects).getCenter());
getCentralObject
{IGeoObject|null} getCentralObject(map)
Метод для получения объекта, наиболее близкого к центру видимой области карты.
Returns ссылка на геообъект или null в случае пустой выборки.
Параметры:
* Обязательный параметр/опция.
Пример:
// Пример работы при синхронных операциях.
// Откроем балун у объекта, ближайшего к центру видимой области карты.
ymaps.geoQuery(objects).getCentralObject(myMap).balloon.open();
getClosestTo
{IGeoObject|null} getClosestTo(object[, radius])
Метод, возвращающий объект выборки, ближайший к указанному. Если на вход подается объект, уже находящийся в выборке, то вернется другой объект выборки, ближайший к указанному. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов.
Returns объект выборки, ближайший к указанному или null, если объект невозможно найти.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
|
radius | — | Тип: Number Радиус окружности в метрах. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
|
radius | — | Тип: Number Радиус окружности в метрах. |
* Обязательный параметр/опция.
Примеры:
1.
// Примеры использования метода при различных входных данных.
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.
// Пример использования при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Париж')).addToMap(myMap);
// Дождемся ответа от сервера и получим объект, ближайший к точке.
result.then(function () {
var closestObject = result.getClosestTo([34, 65]);
// Если ответ пуст, то ближайший объект не найдется.
if (closestObject) {
closestObject.balloon.open();
}
});
getExtreme
{Number} getExtreme(key)
Метод, возвращающий максимальные и минимальные значения координат среди координат объектов выборки.
Returns соответствующее значение координаты.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
key * | — | Тип: String Ключ для получения данных. Может принимать следующие значения:
|
* Обязательный параметр/опция.
Примеры:
1.
// Пример работы при синхронных операциях.
alert('Самая северная координата: ', ymaps.geoQuery(myMap.geoObjects).getExtreme('top'));
2.
// Пример работы при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Новгород'));
// Дождемся ответа от сервера и получим самую северную координату.
result.then(function () {
alert('Самая северная координата в ответе: ', result.getExtreme('top'));
});
getExtremeObject
{IGeoObject} getExtremeObject(key)
Метод, возвращающий объект с минимальной или максимальной координатой среди координат объектов выборки.
Returns объект с требуемой координатой.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
key * | — | Тип: String Ключ для поиска объекта. Может принимать следующие значения:
|
* Обязательный параметр/опция.
Примеры:
1.
// Пример работы при синхронных операциях.
// Откроем балун на самом северном объекте.
var topObject = ymaps.geoQuery(myMap.geoObjects).getExtremeObject('top');
topObject.balloon.open();
2.
// Пример работы при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('море Лаптевых'));
// Нужно дождаться ответа от сервера, чтобы работать с данными.
result.then(function () {
var topObject = result.getExtremeObject('top');
// Если ответ пуст, то объект не найдется.
if (topObject) {
topObject.balloon.open();
}
});
getGlobalPixelBounds
{Number[][]|null} getGlobalPixelBounds(map)
Метод, возвращающий глобальные пиксельные координаты области для текущего зума карты.
Returns глобальные пиксельные координаты области, охватывающей объекты результата.
Параметры:
* Обязательный параметр/опция.
Пример:
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
{Number[]} getGlobalPixelCenter(map)
Метод, возвращающий центр области, охватывающей объекты результата, в глобальных пиксельных координатах для текущего зума карты.
Returns координаты центра области в глобальных пиксельных координатах.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
map * | — | Тип: Map Карта, для которой нужно произвести расчеты. |
* Обязательный параметр/опция.
Пример:
// Посчитаем номер тайла, на который приходится центр области, охватывающей результат.
var globalPixelCenter = ymaps.geoQuery(objects).getGlobalPixelCenter(myMap),
tileNumber = [
Math.floor(globalPixelCenter[0] / 256),
Math.floor(globalPixelCenter[1] / 256)
];
alert('Номер центрального тайла: ' + tileNumber[0] + ' ' + tileNumber[1]);
getIterator
{IIterator} getIterator()
Returns итератор по объектам результата.
Примеры:
1.
// Использование итератора при синхронных операциях.
// Поиск элементов, на которые попадают координаты клика.
myMap.events.add('click', function (event) {
var iterator = ymaps.geoQuery(myMap.geoObjects)
.searchContaining(event.getCoordinates())
.getIterator(),
obj;
while (obj = iterator.getNext()) {
// Совершаем необходимые действия над геообъектом.
}
});
2.
// Использование итератора при асинхронных операциях.
// Создадим результат из запроса к геокодеру.
var result = ymaps.geoQuery(ymaps.geocode("Староколпакский переулок")).search("lat > 20");
// Обратите внимание, что мы только отправили запрос к серверу, ответ придет чуть позже.
// Поскольку запрос асинхронный, нужно дождаться его готовности перед получением результата.
result.then(function () {
var iterator = result.getIterator(),
obj;
while (obj = iterator.getNext()) {
// Совершаем необходимые действия над геообъектом.
}
});
getLength
{Number} getLength()
Returns количество элементов в результате.
Примеры:
1.
var result = ymaps.geoQuery(myMap.geoObject).searchIntersect(myPolygon);
alert('Количество геообъектов, пересекающих многоугольник: ' + result.getLenght());
2.
var result = ymaps.geoQuery(ymaps.geocode('Иваново')).searchInside(myMap);
// Поскольку мы отправили запрос на сервер, сразу посчитать количество элементов
// в результате нельзя. Нужно дождаться ответа.
result.then(function () {
alert('Количество объектов в видимой области карты: ' + result.getLength());
});
getMaxZoom
{Number} getMaxZoom(map)
Метод, вычисляющий максимальный коэффициент масштабирования, при котором в видимую область карты попадают все объекты.
Returns максимальный коэффициент масштабирования карты.
Параметры:
* Обязательный параметр/опция.
Пример:
// Вычислим максимальный коэффициент масштабирования,
// при котором видны все объекты выборки
// и выставим ограничение для карты.
var maxZoom = ymaps.geoQuery(objects).getMaxZoom();
myMap.options.set('maxZoom', maxZoom);
indexOf
{Number} indexOf(item)
Returns индекс элемента в выборке. Если элемент не найден, возвращается -1.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
item * | — | Тип: IGeoObject Искомый объект. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
item * | — | Тип: IGeoObject Искомый объект. |
* Обязательный параметр/опция.
Пример:
// Отсортируем выборку по полю name.
var result = ymaps.geoQuery(polygons).sort('properties.name');
alert('Новая позиция первого элемента: ' + result.indexOf(polygons[0]));
intersect
{GeoQueryResult} intersect(result)
Метод создает новую выборку, содержащую общие элементы для двух других выборок.
Returns новую выборку, содержащую результат пересечения.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
result * | — | Тип: GeoQueryResult Выборка, с которой пересекают исходную. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
result * | — | Тип: GeoQueryResult Выборка, с которой пересекают исходную. |
* Обязательный параметр/опция.
Примеры:
1.
// Пример пересечения при синхронных операциях.
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.
// Пример пересечения при асинхронных операциях.
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
{Boolean} isReady()
Метод, возвращающий признак готовности выборки.
Returns признак, готовы результаты выборки или еще обрабатываются.
Пример:
var result = ymaps.geoQuery(ymaps.geocode('Иваново'));
if (!result.isReady()) {
result.then(function () {
// Обработка данных.
});
} else {
// Обработка данных.
}
map
{GeoQueryResult} map(callback[, context])
Метод, вызывающий метод callback для всех элементов выборки и формирующий новую выборку на основе полученных результатов.
Returns новую выборку.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
callback * | — | Тип: Function Функция-обработчик. Принимает на вход элемент выборки. Возвращает экземпляр IGeoObject. |
context | — | Тип: Object Контекст выполнения функции-обработчика. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
callback * | — | Тип: Function Функция-обработчик. Принимает на вход элемент выборки. Возвращает экземпляр IGeoObject. |
context | — | Тип: Object Контекст выполнения функции-обработчика. |
* Обязательный параметр/опция.
Пример:
// Добавим на карту только объекты-окружности.
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
{GeoQueryResult} remove(objects)
Удаляет объекты из результата. Не изменяет исходный объект, а создает новый, содержащий результирующий набор геообъектов.
Returns новый объект с результирующим набором геообъектов.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
objects * | — | Тип: Object Объекты могут быть представлены в разном виде:
|
Параметр | Значение по умолчанию | Описание |
---|---|---|
objects * | — | Тип: Object Объекты могут быть представлены в разном виде:
|
* Обязательный параметр/опция.
Примеры:
1.
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.
// Удаление из 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.
// Удаление из GeoQueryResult коллекции геообъектов.
// Добавим на карту объекты, которых там еще нет.
myGeoQueryResult.remove(myMap.geoObjects).addToMap(myMap);
4.
// Удаление из 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
Удаляет подписку на событие с объекта. Обратите внимание, что для корректной отписки передаваемые аргументы должны быть точно такие же, как при подписке через метод addEvents.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
events * | — | Тип: String|String[] Тип или массив типов событий, на которые была сделана подписка. |
callback * | — | Тип: Function Функция-обработчик, которую указали при подписке. |
context * | — | Тип: Object Контекст, который был указан при подписке. |
* Обязательный параметр/опция.
Пример:
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
{GeoQueryResult} removeFrom(collection)
Метод для удаления объектов из коллекции.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
collection * | — | Тип: ICollection Коллекция, из которой нужно удалить объекты. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
collection * | — | Тип: ICollection Коллекция, из которой нужно удалить объекты. |
* Обязательный параметр/опция.
Пример:
// Покажем на карте все объекты.
var result1 = ymaps.geoQuery(placemarks).addTo(myMap.geoObjects),
// А затем скроем объекты из северного полушария.
result2 = result1.search('lat > 0').removeFrom(myMap.geoObjects);
removeFromMap
{GeoQueryResult} removeFromMap(map)
Метод для удаления объектов с карты.
Returns ссылку на себя.
Параметры:
* Обязательный параметр/опция.
Пример:
// Покажем на карте все объекты.
var result1 = ymaps.geoQuery(placemarks).addToMap(myMap),
// А затем скроем объекты из северного полушария.
result2 = result1.search('lat > 0').removeFromMap(myMap);
reverse
{GeoQueryResult} reverse()
Переставляет элементы выборки в обратном порядке и возвращает новую выборку.
Returns новую выборку с элементами в обратном порядке.
Примеры:
1.
// Использование при синхронных запросах.
var result = ymaps.geoQuery(myMap.geoObjects).sort('x'),
invertedResult = result.reverse();
2.
// Использование при асинхронных запросах.
var result = ymaps.geoQuery(ymaps.geocode('село Добрые пчелы')).sort('x'),
invertedResult = result.reverse();
invertedResult.then(function () {
// Результат получен, можно начинать пользоваться.
});
search
{GeoQueryResult} search(condition)
Метод для поиска объектов выбоки, удовлетворяющих условиям.
Returns новую выборку, содержащую результаты поиска.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
condition * | — | Тип: String|Function Строковый шаблон для поиска или функция-фильтр.
Строковый шаблон имеет структуру "<fieldname> <condition> <expression>".
Возможные значения <fieldname>:
|
Параметр | Значение по умолчанию | Описание |
---|---|---|
condition * | — | Тип: String|Function Строковый шаблон для поиска или функция-фильтр.
Строковый шаблон имеет структуру "<fieldname> <condition> <expression>".
Возможные значения <fieldname>:
|
* Обязательный параметр/опция.
Примеры:
1.
// Пример поиска объектов при синхронных операциях.
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.
// Использование метода при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Лось'));
// Для работы с результатом нужно дождаться его готовности.
result.then(function () {
result.search('properties.description regExp "*поселок*"')
.addToMap(myMap)
.applyBoundsToMap(myMap);
});
searchContaining
{GeoQueryResult} searchContaining(object)
Метод, создающий новую выборку из объектов, содержащих указанный объект. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов.
Returns новую выборку, содержащую искомые объекты.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
|
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
|
* Обязательный параметр/опция.
Примеры:
1.
// Примеры использования метода при различных входных данных.
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.
// Пример использования при асинхронных операциях.
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
{GeoQueryResult} searchInside(object)
Метод, создающий новую выборку из объектов, целиком входящих в указанный объект. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов.
Returns новую выборку, содержащую искомые объекты.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
|
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
|
* Обязательный параметр/опция.
Примеры:
1.
// Примеры использования метода при различных входных данных.
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.
// Пример использования при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('Иваново'))
.setOptions('visible', false)
.addToMap(myMap);
// Дождемся ответа от сервера и покажем объекты, попадающие в видимую область карты.
result.then(function () {
result.searchInside(myMap).setOptions('visible', true);
});
searchIntersect
{GeoQueryResult} searchIntersect(object[, options])
Метод, создающий новую выборку из объектов, пересекающих указанный объект. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов.
Returns новую выборку, содержащую искомые объекты.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
|
options | — | Тип: Object Опции. |
options.considerOccurance | true | Тип: Object Флаг, показывающий, считаем ли мы пересечением, когда одна фигура полностью содержится в другой. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, относительно которого
будет производится поиск. Может принимать следующие значения:
|
options | — | Тип: Object Опции. |
options.considerOccurance | true | Тип: Object Флаг, показывающий, считаем ли мы пересечением, когда одна фигура полностью содержится в другой. |
* Обязательный параметр/опция.
Примеры:
1.
// Примеры использования метода при различных входных данных.
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.
// Пример использования при асинхронных операциях.
var result = ymaps.geoQuery(ymaps.geocode('кафе'))
.setOptions('visible', false)
.addToMap(myMap);
// Дождемся ответа от сервера и покажем объекты, попадающие в видимую область карты.
result.then(function () {
result.searchIntersect(myMap).setOptions('visible', true);
});
setOptions
{GeoQueryResult} setOptions(key[, value])
Метод, позволяющий задать значение опций всем элементам выборки.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
key * | — | Тип: String|Object Название опции или хэш с опциями и их значениями. |
value | — | Тип: Object Значение опции. |
* Обязательный параметр/опция.
Пример:
var result = ymaps.geoQuery(placemarks);
// Сделаем видимыми элементы, попадающие в прямоугольную область.
result.searchIntersect(myBounds).setOptions('visible', true);
// Зададим опции с помощью хэша.
result.setOptions({zIndex: 10, fillColor: '#ff0005'});
setProperties
{GeoQueryResult} setProperties(path, value)
Метод, позволяющий задать значение поля properties всем элементам выборки.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
path * | — | Тип: String Имя поля, которому присваивается значение. Может содержать ".". |
value * | — | Тип: Object Значение поля. |
* Обязательный параметр/опция.
Пример:
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
{GeoQueryResult} slice(begin[, end])
Метод, возвращающий срез выборки.
Returns новую выборку, содержающую элементы среза.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
begin * | — | Тип: Number Индекс начального элемента в срезе. |
end | — | Тип: Number Индекс элемента в выборке, на котором срез завершится. При этом последним в новом срезе будет элемент с индексом end-1. |
* Обязательный параметр/опция.
Примеры:
1.
// Выполним срез при синхронной обработке.
var result = ymaps.geoQuery(map.geoObjects).slice(0, 10);
alert('Количество элементов в новой выборке:', result.getLength());
2.
// Взятие среза при асинхронной обработке.
var result = ymaps.geoQuery(ymaps.geocode('кафе Москва')).slice(0, 10);
// Сразу после запроса результат еще не готов.
alert('Пока выборка пуста. Количество элементов в выборке: ' + result.getLength());
// Дождемся готовности результата и посмотрим, сколько элементов будет в выборке.
result.then(function () {
alert('Ответ получен. Количество данных в выборке: ' + result.getLength());
});
sort
{} sort(comparator)
Метод для сортировки объектов выборки. Не изменяет исходную выборку, а создает новую, содержащую упорядоченные объекты.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
comparator * | — | Тип: String|Function Строка с шаблоном сортировки или функция-компаратор.
Строка-шаблон может быть представлена в виде '<fieldname> [<order>=asc]'.
Возможные значения <fieldname>:
|
Параметр | Значение по умолчанию | Описание |
---|---|---|
comparator * | — | Тип: String|Function Строка с шаблоном сортировки или функция-компаратор.
Строка-шаблон может быть представлена в виде '<fieldname> [<order>=asc]'.
Возможные значения <fieldname>:
|
* Обязательный параметр/опция.
Пример:
// Пример использования при синхронных операциях.
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
{GeoQueryResult} sortByDistance(object, raduis)
Метод, позволяющий получить выборку, содержащую объекты, отсортированные по расстоянию до указанного объекта. Обратите внимание, что многие геообъекты требуют добавления на карту для корректных расчетов. Не изменяет исходную выборку.
Returns новую упорядоченную выборку.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, до которого будет считаться расстояние.
Может принимать следующие значения:
|
raduis * | — | Тип: |
Параметр | Значение по умолчанию | Описание |
---|---|---|
object * | — | Тип: Object Объект, до которого будет считаться расстояние.
Может принимать следующие значения:
|
raduis * | — | Тип: |
* Обязательный параметр/опция.
Примеры:
1.
// Примеры использования метода при различных входных данных.
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.
// Пример использования при асинхронных операциях.
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
{GeoQueryResult} then([onResolve[, onReject]])
Подписка на "обещание".
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
onResolve | — | Тип: Function Функция-обработчик, которая вызывается, если обещание выполнено. |
onReject | — | Тип: Function Функция-обработчик, которая вызывается, если обещание не выполнено (произошла ошибка). |
Пример:
var result = ymaps.geoQuery(ymaps.geocode('река Лена'));
result.then(function () {
alert('Количество найденных объектов: ' + result.getLength());
}, function () {
alert('Произошла ошибка.');
});
unsetOptions
{GeoQueryResult} unsetOptions(keys)
Метод, позволяющий обнулять значение опций всем элементам выборки.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
keys * | — | Тип: String|String Название или массив названий опций, которые должны быть аннулированы. |
* Обязательный параметр/опция.
Пример:
result.unsetOptions('visible');
unsetProperties
{GeoQueryResult} unsetProperties(path)
Метод позволяющий обнулить значение поля properties у всех элементов выборки.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
path * | — | Тип: String Имя поля, значение которого нужно обнулить. Может содержать ".". |
* Обязательный параметр/опция.
Пример:
var result = ymaps.geoQuery(objects);
// Пометим элементы, попадающие в первую область, но не попадающие во вторую.
result.searchIntersect(myBounds1).setProperties('intersectBounds', true);
result.searchIntersect(myBounds2).unsetProperties('intersectBounds', true);
// ...
result.search('properties.intersectBounds = true').addToMap(myMap);