【问题标题】:Gremlin query to get locations within 100 mile radiusGremlin 查询以获取 100 英里半径内的位置
【发布时间】:2021-07-26 18:43:46
【问题描述】:

在我的数据中,我很少有城市作为顶点以及它们的坐标作为属性。 我的目标是,假设给定一个中心点,即纽约市,我想找出距离纽约市 100 英里半径范围内的顶点(城市),以便我可以用图形表示城市及其相关员工方圆 100 英里。

我知道很大的圆距,但它只是计算两地之间的球面距离。

【问题讨论】:

  • 您使用的是哪个图形数据库引擎?有些内置了地理空间谓词和其他功能。在其他情况下,您仍然可以使用math 步骤得出一些合理的近似值。
  • @KelvinLawrence 我正在使用 AWS Neptune。我提到了与您的书的大圈距离!
  • 我在下面添加了一些想法的初步答案
  • 谢谢@KelvinLawrence,它成功了!

标签: geocoding gremlin


【解决方案1】:

虽然一些支持 Apache TinkerPop 的图形数据库添加了对地理空间计算的自定义支持,但该功能尚未作为一组谓词和数据类型添加到 Gremlin。也就是说,这绝对是 Apache TinkerPop 社区在未来版本中关注的主题。

与此同时,您有几个选择。

  1. 纯粹在 Gremlin 中使用纬度/经度属性来粗略估计您需要的值。最简单的方法是使用您感兴趣的半径的圆的边界框,然后在应用程序代码中删除不需要的边界框。一个经度大约是 56.4 英里,一个纬度大约是 69 英里(但请记住,地球是球形的,这个值会随着您接近两极而变化。
  2. 编写一个查询来完成选项需要执行的所有操作,然后使用 Haversine Gremlin 查询确定要保留哪些选项。
  3. 使用地理哈希而不是纬度/经度存储坐标,然后在 Gremlin 或您的应用程序中进行一些计算以找到您感兴趣的坐标。

【讨论】:

  • 谢谢!我跟着第一个,它成功了!
猜你喜欢
  • 1970-01-01
  • 2015-06-15
  • 2014-11-26
  • 2013-08-30
  • 2023-02-10
  • 2017-08-14
  • 2015-12-11
  • 2020-12-21
相关资源
最近更新 更多