如何在Android FAST中为多个点计算两点之间的距离

Fed*_*ico 3 java android android-mapview

我有大约1000分.我试图根据距离对这个点进行分组.我使用的是harversine配方,但它似乎超级慢.在android中1000分需要4秒.在我的本地环境需要60毫秒.

我不关心岁差,积分不超过25公里.

我可以使用另一种配方吗?

Com*_*are 6

首先,对于彼此靠近的物品,地球的曲率不会太重要.因此,您可以将其视为平坦的,此时您正在查看毕达哥拉斯定理的距离(x/y距离的平方和的平方根).

其次,如果你所做的只是排序/分组,你可以放弃平方根计算,只需在距离的平方上排序/分组.在缺少浮点协处理器的设备上,例如Android手机的前几代,它们在那里会做很多好事.

第三,您没有指出用于点的坐标系,但如果您可以使用定点数学计算,那么这也将提高性能,特别是在无协处理器设备上.这就是为什么用于Android的Google Maps插件使用GeoPoint和微double度,而不是Location你从中获得的Java 学位LocationManager.