【问题标题】:Determining user current location in IPhone and nearest locations from it确定用户在 iPhone 中的当前位置及其最近的位置
【发布时间】:2012-09-30 20:17:13
【问题描述】:

我目前正在为 iPhone 开发一个移动应用程序,该应用程序包含一个需要确定用户当前位置以及最近位置(如存储在手机中的纬度、经度点)的部分。我有以下问题:

1- 用户是否需要连接到互联网,以便我们的应用程序可以确定他/她的位置? GPS 的设计是否不足以确定用户当前位置的纬度、经度?

2- 由于我们将一些位置存储在应用程序中,是否可以在没有互联网连接的情况下确定距用户当前位置最近的位置(例如 5 公里内)?

如果可以提供代码示例来缩小上述答案的范围,我们将不胜感激。

非常感谢

【问题讨论】:

  • 我猜 GPS 需要通过互联网连接发送和接收数据。如果你有本地存储的数据(坐标),你可以离线计算最近的任何东西。
  • 你想要在 android 或 iphone 中
  • 既然用户的手机里有GPS设备,那么为什么应用程序需要连接到互联网,因为默认情况下GPS应该在离线模式下确定用户当前位置。在我上面的问题中,我的意思不是在在线地图(Google 或 Bing 地图)中显示用户当前位置,而只是确定用户当前的纬度、经度。如果用户当前位置可以在没有互联网连接的情况下计算,那么肯定会找到最近的位置(在手机中存储为纬度、经度)不需要互联网连接,可以通过等式确定

标签: iphone map geolocation


【解决方案1】:

好吧,对于你的第一个问题,你不需要互联网连接来获取你当前的位置。

对于您的第二个问题,如果您能够获得您所说的we will be having some locations as lat,long stored in the application 的位置坐标(纬度,经度),那么您可以计算坐标并找到它们之间的距离。

使用以下函数计算坐标距离

 public static float distFrom(float lat1, float lng1, float lat2, float lng2) {
    double earthRadius = 6371;
    double dLat = Math.toRadians(lat2-lat1);
    double dLng = Math.toRadians(lng2-lng1);
    double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
               Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
               Math.sin(dLng/2) * Math.sin(dLng/2);
    double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
    double dist = earthRadius * c;

    return(float)(dist);
    }

它是haversine 公式的Java 实现。用它来寻找距离。

【讨论】:

  • 感谢 NejiHyuga 的有希望的回答。在这种情况下,您能否提供一个编码示例,用于通过电话 GPS 在内部计算用户当前位置,而无需连接到互联网?如果可能的话,这适用于 IOS 和 Android
【解决方案2】:

是的,您必须使用 google API 找到 5 英里以下的最近位置信息,使用此 API,您将找到所有信息 ..country info ,nearest location..ect

使用此链接:- http://maps.google.com/maps/geo?q=%f,%f&output=json&oe=utf8&sensor=true_or_false&key=ABQIAAAAO_WEDXjKUGDDHu8iB2FQ-xTFGipc9T1i1tjtezgvz0dWKwv3jxTjn5y1VrjIixtSrXmeMwiaCfxS8g

【讨论】:

  • 感谢 Nivrit Gupta,但是为什么我需要使用 Google API 来查找最近的位置,因为这些位置 lat,long 离线存储在手机数据库中?
  • 我仍然期待这篇文章两个问题的确认答案:)
  • 您好朋友,请使用以下链接下载演示github.com/heardrwt/GeocoderDemo ...然后借助您当前的位置 lat 将这个演示安装到您的设备中,登录您将找到最近的位置和其他相关信息..如果您有任何问题,请告诉我
  • 如果我在我的项目中使用这个 api,苹果会拒绝我的应用程序吗?我也在寻找同样的结果。我想找到离我当前位置最近的位置。
  • 好的,如果您不使用 google API,请使用自定义网络服务查找离我当前位置最近的位置
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-01
  • 1970-01-01
相关资源
最近更新 更多