昨天我写了一篇博客文章,展示了如何使用Cypher查找两个纬度/经度之间的中点,这是第一次尝试填补丢失位置的方法,但我意识到我可以做得更好。

正如我在上一篇文章中提到的,当我找到一个缺少经纬度坐标的停靠点时,通常可以在附近找到两个停靠点,以便对该停靠点的位置进行三角剖分。

我也有火车路线,该路线指示从一个停靠点到另一个停靠点所花费的秒数,这使我可以指示出无位置停靠点是否比另一个停靠点更靠近一个停靠点。

例如,考虑在b没有位置的情况下停靠a,b和c。 如果停靠点之间有以下距离:

(a)-[:NEXT {time: 60}]->(b)-[:NEXT {time: 240}]->(c)

它告诉我们,点“ b”实际上是从“ a”到“ c”的距离的0.2,而不是中点。

有一个公式可以用来说明这一点:

a = sin((1−f)⋅δ) / sin δ
b = sin(f⋅δ) / sin δ
x = a ⋅ cos φ1 ⋅ cos λ1 + b ⋅ cos φ2 ⋅ cos λ2
y = a ⋅ cos φ1 ⋅ sin λ1 + b ⋅ cos φ2 ⋅ sin λ2
z = a ⋅ sin φ1 + b ⋅ sin φ2
φi = atan2(z, √x² + y²)
λi = atan2(y, x)δ is the angular distance d/R between the two points.
φ = latitude
λ = longitude

翻译成Cypher(带有强制性的希腊符号)后,它看起来像这样,以找到从一个点到另一个点的方式的点0.2

with {latitude: 51.4931963543, longitude: -0.0475185810} AS p1, {latitude: 51.47908, longitude: -0.05393950 } AS p2WITH p1, p2, distance(point(p1), point(p2)) / 6371000 AS δ, 0.2 AS f
WITH p1, p2, δ, sin((1-f) * δ) / sin(δ) AS a,sin(f * δ) / sin(δ) AS b
WITH radians(p1.latitude) AS φ1, radians(p1.longitude) AS λ1,radians(p2.latitude) AS φ2, radians(p2.longitude) AS λ2,a, b
WITH a * cos(φ1) * cos(λ1) + b * cos(φ2) * cos(λ2) AS x,a * cos(φ1) * sin(λ1) + b * cos(φ2) * sin(λ2) AS y,a * sin(φ1) + b * sin(φ2) AS z
RETURN degrees(atan2(z, sqrt(x^2 + y^2))) AS φi,degrees(atan2(y,x)) AS λi
╒═════════════════╤════════════════════╕
│φi               │λi                  │
╞═════════════════╪════════════════════╡
│51.49037311149128│-0.04880308288561931│
└─────────────────┴────────────────────┘

一个快速的健全性检查,插入0.5而不是0.2可以找到我能够根据昨天的帖子进行健全性检查的中点:

╒═════════════════╤═════════════════════╕
│φi               │λi                   │
╞═════════════════╪═════════════════════╡
│51.48613822097523│-0.050729537454086385│
└─────────────────┴─────────────────────┘

目前为止就这样了!

翻译自: https://www.javacodegeeks.com/2016/11/neo4j-find-intermediate-point-two-latlongs.html

Neo4j:找到两个纬度/经度之间的中间点相关推荐

  1. neo4j 两个点创建关系_Neo4j:找到两个纬度/经度之间的中间点

    neo4j 两个点创建关系 昨天我写了一篇博客文章,展示了如何使用Cypher查找两个纬度/经度之间的中点,这是第一次尝试填补缺失位置时的效果,但是我意识到我可以做得更好. 正如我在上一篇文章中提到的 ...

  2. neo4j导入两个文件_Neo4j:找到两个纬度/经度之间的中点

    neo4j导入两个文件 在过去的两个周末中,我一直在处理一些运输数据,并且我想运行A *算法来查找两个车站之间的最快路线. A *算法将EstimateEvaluator作为其参数之一,并且该评估器查 ...

  3. Neo4j:找到两个纬度/经度之间的中点

    在过去的两个周末中,我一直在处理一些运输数据,并且我想运行A *算法来查找两个车站之间的最快路线. A *算法将一个EstimateEvaluator作为其参数之一,然后该评估器查看节点的经度/纬度, ...

  4. 如何在python中找到两个日期时间对象之间的时差?

    本文翻译自:How do I find the time difference between two datetime objects in python? 如何分辨两个datetime对象之间的时 ...

  5. 两个时间的差值Java,Java如何找到两个时间之间的差值?

    下面的代码片段向您展示了如何找到LocalTime类表示的两个时间对象之间的差异.要获得两个LocalTime对象之间的差异,我们可以使用持续时间.between()方法.这个方法返回一个Durati ...

  6. gps两点距离 php,PHP应用:PHP计算百度地图两个GPS坐标之间距离的方法

    <PHP应用:PHP计算百度地图两个GPS坐标之间距离的方法>要点: 本文介绍了PHP应用:PHP计算百度地图两个GPS坐标之间距离的方法,希望对您有用.如果有疑问,可以联系我们. 本文实 ...

  7. php 地图 距离,PHP计算百度地图两个GPS坐标之间距离的方法

    这篇文章主要介绍了PHP计算百度地图两个GPS坐标之间距离的方法,是针对百度地图接口开发的典型应用,需要的朋友可以参考下 本文实例讲述了PHP计算百度地图两个GPS坐标之间距离的方法.分享给大家供大家 ...

  8. 数据库:计算地球上两个坐标点之间里程

    今天给大家分享计算地球上两个坐标点之间里程不同数据库版本的脚本. 1.SQLServer脚本 –-计算地球上两个坐标点(经度,纬度)之间距离sql函数 CREATE FUNCTION [dbo].[f ...

  9. php经纬度之间的距离计算公式,php计算两个经纬度地点之间距离的方法分享

    用php计算两个指定的经纬度地点之间的距离,代码: /** *求两个已知经纬度之间的距离,单位为米 *@param lng1,lng2 经度 *@param lat1,lat2 纬度 *@return ...

最新文章

  1. linux_OEL5.4_安装Oracle11g中文教程图解
  2. python中字符串的操作
  3. 机器学习系列(5)_从白富美相亲名单看特征选择与预处理(上)
  4. 推荐一款cpp解析json工具--rapidjson
  5. JEPaas功能_isEmpty(b.getValue())?“doSave“:“doUpdate“;
  6. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(10)之素材管理
  7. 用计算机计算性别,2018预测生男生女计算器 超准的怀孕计算器查生男生女
  8. C语言源代码展示:常用转换函数实现原理
  9. selinux对ftp的影响
  10. python数据结构不常用的方法(哈哈,其实是常用的)
  11. SVN: bdb: BDB1538 Program version 5.3 doesn't match environment version 4.7
  12. Apache监控与调优(七)MPM相关参数
  13. JDK 运行参数 JAVA -Dxxx与System.setProperty()的关系
  14. URL.createObjectURL()方法
  15. Python Spider 的总结
  16. 【java】BeanUtils.populate()的使用
  17. [图论]---[网络流]---最小点割数/最小点割集
  18. java乌龟_java画乌龟
  19. li , io域名国外注册教程
  20. C++ operator 重载

热门文章

  1. Java压缩技术(五) GZIP相关——浏览器解析
  2. Java通过Class的对象来获取泛型的class示例
  3. 统一配置中心的设计方案
  4. spring bean初始化及销毁你必须要掌握的回调方法。
  5. SpringCloud注册中心高可用搭建
  6. 3班的第一次模拟面试
  7. 《朝花夕拾》金句摘抄(六)
  8. 使用ueditor实现多图片上传案例——DaoImpl层(ShoppingDaoImpl)
  9. 消费端整合SpringCloudGateway
  10. JS中数组的常用方法