Java 计算英国邮政编码之间距离的图书馆

Java 计算英国邮政编码之间距离的图书馆,java,postal-code,Java,Postal Code,我正在寻找一种方法来计算两个英国邮政编码之间的近似距离(直线上的距离足够好),以便分析数据。最好是用java轻松访问,但是C++、本地C++等也很好。 以下问题只在PHP中回答了完全相同的问题: 不过,它利用了web服务API,因此您应该能够使用任何基本的rest API来利用它(我相信Java、C#和C++中都有详细说明的选项)。以下问题仅在PHP中回答了完全相同的问题: 不过它利用了一个web服务API,因此您应该能够使用任何基本的rest API来利用它(我确信Java、C#和C++中

我正在寻找一种方法来计算两个英国邮政编码之间的近似距离(直线上的距离足够好),以便分析数据。最好是用java轻松访问,但是C++、本地C++等也很好。

以下问题只在PHP中回答了完全相同的问题:


不过,它利用了web服务API,因此您应该能够使用任何基本的rest API来利用它(我相信Java、C#和C++中都有详细说明的选项)。

以下问题仅在PHP中回答了完全相同的问题:


不过它利用了一个web服务API,因此您应该能够使用任何基本的rest API来利用它(我确信Java、C#和C++中都有详细说明的选项)。

首先,您需要将邮政编码转换为有用的坐标。例如,邮政编码查找表中的东距和北距值,如下所示:

这些东距和北距是英国军械测量网格坐标,距离OS地图原点以米为单位

将它们除以1000,换算成公里

然后使用一个简单的毕达哥拉斯三角形公式。假设这两个点的东距和北距值(以公里为单位)分别为E1、N1和E2、N2


它们之间的距离(以公里为单位)=(abs(E1-E2)^2+abs(N1-M2)^2)的平方根。

首先,您需要将邮政编码转换为有用的坐标。例如,邮政编码查找表中的东距和北距值,如下所示:

这些东距和北距是英国军械测量网格坐标,距离OS地图原点以米为单位

将它们除以1000,换算成公里

然后使用一个简单的毕达哥拉斯三角形公式。假设这两个点的东距和北距值(以公里为单位)分别为E1、N1和E2、N2


以公里为单位的距离=平方根(abs(E1-E2)^2+abs(N1-M2)^2)

我认为这应该是(abs(E1-E2)^2+abs(N1-N2)^2)的平方根(abs(E1-E2)^2)的时间晚了一点,但我必须补充一点,使用毕达哥拉斯来计算距离假定表面是平坦的。地球当然是弯曲的。因此,父亲去掉了两个GPS坐标,误差就越大。我认为这应该是(abs(E1-E2)^2+abs(N1-N2)^2)的平方根,但我必须补充一点,用毕达哥拉斯来表示距离假设一个平面。地球当然是弯曲的。所以父亲拿走了两个GPS坐标,误差就越大。