2014-04-12 154 views
5

I'm使用OrientDB进行的NoSQL数据库,我不知道如何在地理位置查询准确。从来就阅读特定的文档:OrientDB地理位置

OrientDB Functions

,但不理解的值的意义。

的距离函数:

距离() - 计算在利用半正矢算法地球两个点之间的距离。坐标必须尽可能度

实施例:

其中距离(X,Y,52.20472,0.14056)< = 30

两个问题:

  1. 什么是X,Y和30个值?
  2. 是值(52.20472,0.14056),纬度和经度?

谢谢!

回答

7

距离(X,Y,52.20472,0.14056)< = 30

x和y是经度和纬度(变量)分别记录/位置你从固定坐标52.20472计算距离,0.14056 。

考虑另一个例子:

选定的距离(经度,纬度,52.20472,0.14056)< = 30如通过距离的地方以便距离

通过在位置类/群集记录该查询将循环并为每条记录注入记录的经度和纬度,并计算它到达固定位置的距离(52.20472,0.14056),并返回30米范围内的地方。

其中

的地方是一类/集群包含的地方记录 经度是当前记录 纬度经度领域目前的纪录 距离的纬度字段的字段名

别名
+0

谢谢@ user2692868!有一点,“30米”是30英里? – andresmafra

+1

嗨@andresmafra,谢谢你的观点。我不是很确定,但我认为它是以米为单位的,因为当以角度度量时,距离单位通常以米或公里为单位。我搜索了Harvesine算法,看起来距离是以公里为单位的。 – Opeoluwa

0

基本上这仅仅是使用的例子。它只是显示如何选择距离以度表示的位置(52.20472,0.14056)接近或接近30的项目。

如果我理解正确,则X &Ÿ应与项目位置值的名称。

+0

但30可以被认为是30海里,三十公里?我不明白学位... – andresmafra

+0

在wiki中解释位置的东西:http://en.wikipedia.org/wiki/Geographic_coordinate_system对于使用的单位,我想服务提供商应该指定实际使用的内容。 –

1

如前所述this组和@Opeoluwa回答,距离以公里!

+1

这可以很容易地通过使用OrientDB评估'选择距离(0,0,0,90)'来验证。结果是约。 10007 ....我们知道从赤道到北极的距离大约是10000公里。 – peak