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

在过去的两个周末中,我一直在处理一些运输数据,并且我想运行A *算法来查找两个车站之间的最快路线。

A *算法将一个EstimateEvaluator作为其参数之一,然后该评估器查看节点的经度/纬度,以确定一条路径是否值得遵循。 因此,我需要为每个测站添加纬度/经度,而且我很难找到数据集中所有点的定位日期。

幸运的是,我倾向于在测站的两侧各有经度/纬度两点,因此我可以算出中点作为丢失点的近似值。

我找到了一篇文章,该文章定义了可以用来执行此操作的公式 ,并且有一个StackOverflow帖子 ,其中包含一些实现该公式的Java代码。

我想找到萨里码头(Surrey Quays)站(51.4931963543,-0.0475185810)和火车线上更南的点(51.47908,-0.05393950)之间的中点。 我编写了以下Cypher查询来计算这一点:

WITH 51.4931963543 AS lat1, -0.0475185810 AS lon1, 51.47908 AS lat2 , -0.05393950 AS lon2WITH radians(lat1) AS rlat1, radians(lon1) AS rlon1, radians(lat2) AS rlat2, radians(lon2) AS rlon2, radians(lon2 - lon1) AS dLonWITH rlat1, rlon1, rlat2, rlon2, cos(rlat2) * cos(dLon) AS Bx, cos(rlat2) * sin(dLon) AS ByWITH atan2(sin(rlat1) + sin(rlat2), sqrt( (cos(rlat1) + Bx) * (cos(rlat1) + Bx) + By * By )) AS lat3,rlon1 + atan2(By, cos(rlat1) + Bx) AS lon3RETURN degrees(lat3) AS midLat, degrees(lon3) AS midLon
╒═════════════════╤═════════════════════╕
│midLat           │midLon               │
╞═════════════════╪═════════════════════╡
│51.48613822097523│-0.050729537454086385│
└─────────────────┴─────────────────────┘

右侧的Google Maps屏幕截图显示了顶部和底部的初始点以及中间的中间点。 这并不完美; 理想情况下,我希望中点在轨道上,但是对于算法而言,我认为这已经足够了。

现在,我需要填写无位置站的经纬度!

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猫狗大战

可行性背包 令dp[i][j]表示选i个人能否达到j这个状态,那么转移就和背包一样了,外层枚举选哪一个(K),2、3层枚举i,j,那么\[dp[i][j] | dp[i-1][j-val[k]];\] 转载于:https://www.cnblogs.com/bullshit/p/9902003.html

SAS的数组array介绍

SAS可以把一组同为数值型或同为字符型的变量合在一起,使用同一个名字称呼,用下标来区分。这与通常的程序设计语言中的数组略有区别,通常的程序设计语言中数组元素没有对应的变量名,而SAS数组每个元素都有自己的变量名。 一、数值型…

python while循环if_详解python基础之while循环及if判断

wlile循环while True表示永远为真,不管是什么条件都会向下执行,下面是写的一个例子。#!/usr/bin/env pythonage 24                            #给age赋一个值while True:                       …

关于页面的多种自适应布局——两列布局

我们在切页面的时候打交道最多的就是关于布局排版的技巧&#xff0c;我这里总结了一些平时做页面时用的到各种布局技巧&#xff0c;作为笔记便于日后随时查询。 1、简单结构1&#xff0c;列表在前&#xff0c;内容在后 1 <style type"text/css">2 .layout{back…

很全的sas基础知识

5.1 SAS表达式简介   &#xff11;&#xff0e;SAS常数表达式   (1)数值常数 如: 1.23、 -5、 0.5E-10。   (2)字符常数 如: name1TOME、 name2MARY、name3JOHN。   (3)日期(d)、时间(t)、日时(dt)常数 如: d101JAN80d、t19:25:19t、   dt118JAN80:9:27:05dt。  …

kitti数据集_KITTI数据集激光雷达坐标系下的里程计真值

由KITTI数据集Odometry模块的devkit_odometrydevkitreadme.txt所述&#xff0c;KITII数据集提供里程计的真值是在左相机表坐标系下的&#xff0c;并没有提供激光雷达坐标系下的真值。因此&#xff0c;求得激光雷达坐标系下的真值&#xff0c;对我们使用KITTI数据集进行点云处理…

python中文处理

一、使用中文字符 在python源码中如果使用了中文字符&#xff0c;运行时会有错误&#xff0c;解决的办法是在源码的开头部分加入字符编码的声明&#xff0c;下面是一个例子&#xff1a;#!/usr/bin/env python# -*- coding: cp936 -*-Python Tutorial中指出&#xff0c;python的…

信号量使用例子_用信号量锁定:一个例子

信号量使用例子并发是带来有趣挑战的一个方面。 如果处理不当&#xff0c;会带来种族问题&#xff0c;这会使人们感到困惑&#xff0c;因为这些问题有时会突然出现&#xff0c;并且有时会正常工作。 当处理访问公共资源的并发线程时&#xff0c;Java语言提供了许多处理竞争条件…

.net Reactor之exe、dll文件混淆

.net Reactor之exe、dll文件混淆 .net Reactor的主要功能&#xff1a; 1.是对dll文件、exe文件进行反编译混淆 2.对dll进行内部加锁&#xff0c;限制其使用的固定机器、固定时间、部署次数 2.创建证书文件&#xff0c;用证书管理其限制的机器、时间、部署次数 页面&#xff1a;…

简述SAS逻辑库的概念及建立方法。什么是临时库和永久库?

libname student e:\mysas;SAS中利用libname命令建立逻辑库&#xff0c;虽然之后建立的与其关联的永久数据集还保存在该逻辑库所指的目录中&#xff0c;但重启SAS后该库却没有显示于库目录中。 例如e:\mysas目录已存在&#xff0c;程序data student.aaa;……重启SAS后虽然数据集…

35 岁 学python 必要_程序员:Python学不学?完全没必要纠结

随着云计算、大数据、人工智能的大量应用&#xff0c;Python这毛头小子&#xff0c;成了当红炸子鸡&#xff0c;香飘四溢&#xff0c;撒播到互联网的每个角落里。1几家欢喜几家愁&#xff0c;欢喜的人&#xff0c;早就用上了&#xff0c;国外的Twitter、Google、Yahoo&#xff…

了解连接池

1.简介 连接池是一种通过在池中打开和管理N个数据库连接来提高应用程序性能的技术。 该应用程序只是请求连接&#xff0c;使用它&#xff0c;然后将其放回池中。 当应用程序需要连接时&#xff0c;就绪连接将保持可用状态&#xff0c;以供池中使用。 池管理连接生命周期&#x…

linux上很方便的上传下载文件工具rz和sz

linux上很方便的上传下载文件工具rz和sz(本文适合linux入门的朋友) ######################################################### #《老男孩linux就业培训中心-初级班第七期第一节内容总结。 #linux上很方便的上传下载文件工具rz和sz #date:2011-06-15 #作者&#xff1a;老男孩…

SAS学习︱逻辑库、数据集创建与查看、数据库链接(SAS与R的code对照)

一、逻辑库、数据集、数据字典 数据字典>逻辑库>数据集 逻辑库工作空间&#xff0c;存储四类内容&#xff0c;test是数据集文件&#xff0c;views是视图&#xff08;相当于R里面的views点击查看&#xff09;&#xff0c;formats代表文件&#xff0c;sasmacr代表目录内容…

sqlserver 如何把一列分为一行显示_SqlServer数据库如何快速修改表的一列值

工作中我们会遇到一个表的一列值需要进行整体更换为另一个表的某个字段的值&#xff0c;那么我们该如何处理呢&#xff1f;数据源Room表新的Room表现将Room表的RoomTypeID列替换成Room_new表的RoomTypeID方法一&#xff1a;直接修改update Room set RoomTypeID (select RoomTy…

Linux 命令行通配符及转义符的实现

我们想对一类文件批量操作&#xff0c;例如批量查看硬盘文件属性&#xff0c;那么正常命令会是&#xff1a; [rootlinuxprobe ~]# ls /dev/sda [rootlinuxprobe ~]# ls /dev/sda1 [rootlinuxprobe ~]# ls /dev/sda2 [rootlinuxprobe ~]# ls /dev/sda3 但有些时候确实不知道分区…

windows python 访问mtp存储空间_用Windows电脑训练深度学习模型?超详细配置教程来了...

虽然大多数深度学习模型都是在 Linux 系统上训练的&#xff0c;但 Windows 也是一个非常重要的系统&#xff0c;也可能是很多机器学习初学者更为熟悉的系统。要在 Windows 上开发模型&#xff0c;首先当然是配置开发环境。Kaggle Master 及机器学习实践者 Abhinand 立足于自己的…

Matlab自带排序函数sort用法

Matlab自带排序函数sort用法 [Y,I] sort(X,DIM,MODE) sort函数默认Mode为ascend为升序&#xff0c;sort(X,descend)为降序排列。 sort(X)若X是矩阵&#xff0c;默认对X的各列进行升序排列 sort(X,dim) dim1时等效sort(X) dim2时表示对X中的各行元素升序排列 Matlab中给一维向量…

PostgreSQL学习手册(数据表)

一、表的定义&#xff1a; 对于任何一种关系型数据库而言&#xff0c;表都是数据存储的最核心、最基础的对象单元。现在就让我们从这里起步吧。 1. 创建表&#xff1a; CREATE TABLE products ( product_no integer, name text, price nu…

织梦联动类别-地区调用不显示第三级城市的解决方法

织梦联动类别-地区调用不显示第三级城市的原因 1、附加表dede_addoninfos 或者 你的其他表中的字段nativeplace数据类型为int型&#xff0c;无法保存第三级城市对应的的evalue值(比如&#xff1a;东山区 对应的 10001.001) 2、枚举表dede_sys_enum中的第三级城市对应evalue值…