我有一个我的应用程序支持的城市数据库。这包括以下内容:
最近的城市,我的应用支持相当远。
我想实现的算法是:
这个算法可以,还是我应该重新考虑一下?我的应用程序目前支持3个城市,但我计划升级&在一段时间内支持更多。
不幸的是,我的主要受众是国外公众,因此互联网接入有限,例如我会使用标准机制来实现一种算法来确定我的城市名称,但是我不能作为默认算法进行中继。
答案 0 :(得分:0)
您可以使用以下逻辑来获取两个lat long之间的距离
(这是为了oracle)
DISTANCE = (NVL(Radius,0) * ACOS((sin(NVL(Lat1,0) / DegToRad) * SIN(NVL(Lat2,0) / DegToRad)) +
(COS(NVL(Lat1,0) / DegToRad) * COS(NVL(Lat2,0) / DegToRad) *
Cos(Nvl(Lon2,0) / Degtorad - Nvl(Lon1,0)/ Degtorad))))
其中
DEGTORAD = 57.29577951;
Radius= 6387.7;
可能是,类似的逻辑可以通过SQLite DB中的原始查询来实现。
可以根据最小距离计算距离并对其进行排序和排序。