Команда ReQL: get_nearest
Синтаксис команды
table.get_nearest(point, index='indexname'[, max_results=100, max_dist=100000, unit='m', geo_system='WGS84']) → array
Описание
Возвращает список документов, ближайших к заданной точке, на основе геопространственного индекса, отсортированных по возрастанию расстояния.
Аргумент index является обязательным. Дополнительные аргументы:
-
max_results: максимальное количество результатов (по умолчанию 100). -
unit: единицы измерения расстояния. Возможные значения:m(метр, по умолчанию),km(километр),mi(миля),nm(морская миля),ft(фут). -
max_dist: максимальное расстояние от объекта до заданной точки (по умолчанию 100 км). -
geo_system: используемый эталонный эллипсоид для географических координат. Возможные значения:WGS84(по умолчанию), стандартная модель геометрии Земли, илиunit_sphere, идеальная сфера радиусом 1 метр.
Результат будет массивом объектов с двумя ключами dist и doc, содержащими расстояние между заданной точкой и документом (в единицах измерения, указанных в unit, по умолчанию в метрах) и сам документ соответственно. Массив будет отсортирован по значениям dist.
Пример: Возвращает список 25 ближайших укрытий врага к секретной базе.
secret_base = r.point(-122.422876, 37.777128)
r.table('hideouts').get_nearest(secret_base, index='location',
max_results=25).run(conn)
Если нужно найти все точки в определенном радиусе от другой точки, часто быстрее использовать get_intersecting с circle, если полученное приближение круга
circleдостаточно.
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/python/get_nearest/