【问题标题】:OrientDB geolocationOrientDB 地理定位
【发布时间】:2014-04-12 15:10:11
【问题描述】:

我正在使用 OrientDB for NoSQL 数据库,但我不知道如何准确查询地理位置。我已经阅读了具体的文档:

OrientDB Functions

但不明白价值观的意义。

距离函数:

distance() - 使用 Haversine 算法计算地球上两点之间的距离。坐标必须是度数

例子:

距离(x, y,52.20472, 0.14056)

两个问题:

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

谢谢!

【问题讨论】:

    标签: geolocation orientdb nosql


    【解决方案1】:

    距离(x, y,52.20472, 0.14056)

    x 和 y 分别是您正在计算与固定坐标 52.20472、0.14056 的距离的记录/位置的经度和纬度(变量)。

    考虑另一个例子:

    select distance(longitude, latitude, 52.20472, 0.14056)

    此查询将遍历 Places Class/Cluster 中的记录,并为每条记录注入记录的经度和纬度,并计算其到固定位置 (52.20472, 0.14056) 的距离并返回 30m 内的地点.

    在哪里

    Places 是一个包含地点记录的类/集群 longitude 是当前记录的经度字段 latitude 是当前记录的纬度字段 distance 是字段名的别名

    【讨论】:

    • 嗨@andresmafra,谢谢你的意见。我不太确定,但我认为它以米为单位,因为当以度为单位工作时,距离单位通常以米或公里为单位。我用谷歌搜索了 Harvesine 算法,似乎距离以千米为单位。
    【解决方案2】:

    正如this 组所提到并由@Opeoluwa 回答,距离以公里为单位!

    【讨论】:

    • 这可以通过使用 OrientDB 评估select distance(0,0,0,90) 轻松验证。结果是大约。 10007 ....我们知道从赤道到北极的距离约为10,000公里。
    【解决方案3】:

    基本上这只是一个用法示例。它只是展示了如何从以度数表示的位置 (52.20472, 0.14056) 中选择接近或接近 30 的项目。

    如果我理解正确,那么 X 和 Y 应该是项目位置值的名称。

    【讨论】:

    猜你喜欢
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-04
    • 2011-07-16
    • 2017-08-15
    • 2016-10-13
    • 2022-01-26
    • 1970-01-01
    相关资源
    最近更新 更多