我目前正在为 iPhone 开发一个移动应用程序,其中包含需要确定用户当前位置以及最近位置(如存储在手机中的纬度、经度点)的部分。我有以下问题:
1- 用户是否需要连接到互联网,以便我们的应用程序可以确定他/她的位置?GPS 的设计是否不足以确定用户当前位置的纬度、经度?
2- 由于我们将在应用程序中存储一些经纬度的位置,是否可以在没有互联网连接的情况下确定距用户当前位置最近的位置(例如 5 公里内)?
如果可以提供代码示例来缩小上述答案的范围,我们将不胜感激。
非常感谢
我目前正在为 iPhone 开发一个移动应用程序,其中包含需要确定用户当前位置以及最近位置(如存储在手机中的纬度、经度点)的部分。我有以下问题:
1- 用户是否需要连接到互联网,以便我们的应用程序可以确定他/她的位置?GPS 的设计是否不足以确定用户当前位置的纬度、经度?
2- 由于我们将在应用程序中存储一些经纬度的位置,是否可以在没有互联网连接的情况下确定距用户当前位置最近的位置(例如 5 公里内)?
如果可以提供代码示例来缩小上述答案的范围,我们将不胜感激。
非常感谢
好吧,对于你的第一个问题,你不需要互联网连接来获取你当前的位置。
对于您的第二个问题,如果您能够获得您所说的位置(纬度,经度) 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实现。用它来寻找距离。
是的,您必须使用 google API 找到 5 英里以下的最近位置信息,使用此 API,您将找到所有信息 ..country info ,最近的位置..ect