Команда ReQL: distance
Синтаксис команды
geometry.distance(geometry[, {:geo_system => 'WGS84', :unit => 'm'}]) → number
r.distance(geometry, geometry[, {:geo_system => 'WGS84', :unit => 'm'}]) → number
Описание
Вычислить расстояние между точкой и другим геометрическим объектом. По крайней мере, один из указанных геометрических объектов должен быть точкой.
Доступны необязательные аргументы с distance:
-
geo_system: используемый эталонный эллипсоид для географических координат. Возможные значения —WGS84(по умолчанию), общий стандарт для геометрии Земли, илиunit_sphere, идеальная сфера радиусом 1 метр. -
unit: единица измерения расстояния. Возможные значения —m(метр, по умолчанию),km(километр),mi(миля),nm(морская миля),ft(фут).
Если один из объектов является полигоном или линией, точка будет спроецирована на линию или полигон, предполагая модель идеальной сферы перед вычислением расстояния (используя модель, указанную с geo_system). Вследствие этого, если полигон или линия чрезвычайно велики по сравнению с радиусом Земли, и расстояние вычисляется с использованием модели WGS84 по умолчанию, результаты distance следует считать приблизительными из-за отклонения между эллипсоидальными и сферическими моделями.
Пример: Вычисление расстояния между двумя точками на Земле в километрах.
> point1 = r.point(-122.423246,37.779388)
> point2 = r.point(-117.220406,32.719464)
> r.distance(point1, point2, {:unit => 'km'}).run(conn)
734.1252496021841
© RethinkDB contributors
Licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License.
https://rethinkdb.com/api/ruby/distance/