java:从给定的GPS位置找到最近的GPS位置

标签 java algorithm gps

我需要编写一个 java 程序来从给定的 GPS 位置 P 中找到最近的一组(2 个位置)GPS 位置(来自一组 GPS 位置)是 GPS 位置。情况如图所示,这里所有标记的位置都是GPS位置。从给定位置 P,我想找到最接近 P 的点集,在本例中为 (B,C)

Here all the positions marked are GPS positions. From the given position P, i want to find the set of points which are nearest to P, in this case (B,C)

如果有人能分享与此相关的算法或代码片段,那将非常有帮助。

最佳答案

你必须计算 P 和所有其他点之间的距离,然后取最小值。这是显而易见的部分。

困难的部分是计算两个 gps 坐标之间的距离。 GPS 使用 WGS84 测地线系统来表示地球上的点。 还有不同的方法来计算 ~sphere 上的距离(loxodromic distance 和 great circle distance 是主要的)。 欧几里德距离在球体上总是错误的(甚至不接近),因为在非零纬度处,1°Lat < 1°Lon ...
参见 Distance using WGS84-ellipsoid用于您自己的计算,或者如果您接受一个将为您完成计算的库,则为 GDAL。

您可以使用 GDAL 转换其他测地线系统中的点表示。例如,您可以在平面测地系统上投影点,然后使用 (x,y,z) 坐标,然后计算距离(或更好:平方距离 = x²+y²+z²)。

我认为 google map api 为 gps 坐标提供了一种易于使用的距离方法,如果您碰巧已经在使用它的话。

关于java:从给定的GPS位置找到最近的GPS位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18765495/

相关文章:

java - “mvn install”在尝试下载时不起作用并显示错误

java - firebase 中的静态数据是一种不好的做法吗?

python - 为什么我的凯撒密码只打印字符串的最后一个字母? Python

android - 从 webview 访问原生 android 方法

android - Google Play 服务更新时默认接受 "Improve Location Accuracy"弹出窗口 [ROOT]

java - 线程安全的排序链表

algorithm - MapReduce 替代品

python - 合并甚至有一个共同元素的集合

c# - Windows Phone 7 GeoCoordinateWatcher 精度

java - 导入包的同时也会导入子包吗?