java - 如何计算 Android FAST 中多点两点之间的距离

标签 java android android-mapview

我有大约 1000 分。我正在尝试根据距离对这些点进行分组。我正在使用 harversine 公式,但它似乎 super 慢。在 android 中获得 1000 点需要 4 秒。在我的本地环境中需要 60 毫秒。

我不关心岁差,点之间的距离不超过 25 公里。

我可以使用其他公式吗?

最佳答案

首先,对于彼此靠近的项目,地球的曲率不会太重要。因此,您可以将其视为平面,此时您正在查看距离的勾股定理(x/y 距离平方和的平方根)。

其次,如果您所做的只是排序/分组,则可以放弃平方根计算,只对距离的平方进行排序/分组。在缺少浮点协处理器的设备上,例如前几代 Android 手机,这会带来很多好处。

第三,您没有指出您为点使用的坐标系,但如果您可以使用定点数学进行计算,那也将提高性能,尤其是在无协处理器的设备上。这就是为什么适用于 Android 的 Google map 附加组件在您从 位置管理器

关于java - 如何计算 Android FAST 中多点两点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719978/

相关文章:

android - 无法在浏览器中打开本地文件

android - 如何在 map View 中实现 3D/倾斜模式?

java - 如何将 CSS 添加到 eclipse HTML 文件

java - Google 通讯录 API v3,JAVA 获取所有联系人 "contactFeed.getEntries() is empty"!

java - 从html访问WEB-INF/jsp

android - 如何使用 MyLocationOverlay 在 MapView 上绘制当前 GPS 位置?

android - 如何只绘制 map 上可见的标记?

java - 跨项目应用程序中未显示 log4j 日志记录?

java - Android 如何将 JSON 对象作为 url 参数传递

android - 更新到 kitkat 后,我​​在时间线中插入卡片的玻璃应用程序停止工作