确定城市名称没有互联网接入的算法?

时间:2014-06-02 08:07:00

标签: android gps

我有一个我的应用程序支持的城市数据库。这包括以下内容:

  • 名称。
  • 中心坐标。

最近的城市,我的应用支持相当远。

我想实现的算法是:

  1. 获取当前位置
  2. 通过中心坐标运行,如果有任何东西在用户的<(X)Km,那么用户就在那个城市。
  3. 这个算法可以,还是我应该重新考虑一下?我的应用程序目前支持3个城市,但我计划升级&在一段时间内支持更多。

    不幸的是,我的主要受众是国外公众,因此互联网接入有限,例如我会使用标准机制来实现一种算法来确定我的城市名称,但是我不能作为默认算法进行中继。

1 个答案:

答案 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中的原始查询来实现。

可以根据最小距离计算距离并对其进行排序和排序。