Spec-Zone.ru › RethinkDB javascript

Команда ReQL: getNearest

Синтаксис команды

table.getNearest(point, {index: 'indexname'[, maxResults: 100, maxDist: 100000, unit: 'm', geoSystem: 'WGS84']}) → array

Описание

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

Аргумент index является обязательным. Дополнительные аргументы:

  • maxResults: максимальное количество возвращаемых результатов (по умолчанию 100).
  • unit: единица измерения расстояния. Возможные значения: m (метр, по умолчанию), km (километр), mi (морская миля), nm (узловая миля), ft (международный фут).
  • maxDist: максимальное расстояние от объекта до заданной точки (по умолчанию 100 км).
  • geoSystem: используемый эллипсоид отсчета для географических координат. Возможные значения: WGS84 (по умолчанию), распространённый стандарт для геометрии Земли, или unit_sphere, идеальная сфера радиусом 1 метр.

Результат будет массивом объектов с двумя ключами: dist и doc, содержащими расстояние между заданной точкой и документом (в единицах измерения, указанных в unit, по умолчанию в метрах) и сам документ соответственно. Массив будет отсортирован по значениям dist.

Пример: Возвращает список 25 ближайших вражеских укрытий к секретной базе.

var secretBase = r.point(-122.422876,37.777128);
r.table('hideouts').getNearest(secretBase,
    {index: 'location', maxResults: 25}
).run(conn, callback)

Если требуется найти все точки в определённом радиусе от другой точки, часто быстрее использовать getIntersecting с circle, если приближение круга, которое circle генерирует, является достаточным.

Связанные команды

  • getIntersecting

© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/javascript/get_nearest/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API