iPhone SDK:使用GPS跟踪用户位置
我有几个关于核心定位和GPS的问题 首先,在核心位置使用什么方法持续获取用户当前坐标?应该在什么时间间隔检索这些文件 第二,每次接收到这些坐标时,是否应将其推入NSMUTABLEARAY,以便坐标数组表示用户路径iPhone SDK:使用GPS跟踪用户位置,iphone,mapkit,mkmapview,core-location,Iphone,Mapkit,Mkmapview,Core Location,我有几个关于核心定位和GPS的问题 首先,在核心位置使用什么方法持续获取用户当前坐标?应该在什么时间间隔检索这些文件 第二,每次接收到这些坐标时,是否应将其推入NSMUTABLEARAY,以便坐标数组表示用户路径 谢谢,只是想让我开始思考这个问题。最好的方法是阅读,它链接到几个示例项目。简短版本: 将delegate属性设置为将接收位置更新的类 在委托中实现协议 调用相应的方法开始更新位置和/或标题 您可以定义精度可接受的范围以及希望接收自动更新的频率(基于与最后一点的距离)。此外,您还可以关闭
谢谢,只是想让我开始思考这个问题。最好的方法是阅读,它链接到几个示例项目。简短版本:
delegate
属性设置为将接收位置更新的类您可以定义精度可接受的范围以及希望接收自动更新的频率(基于与最后一点的距离)。此外,您还可以关闭位置管理器,然后通过使用计时器随意将其重新打开 至于保存位置以构建路径,这并不是那么简单。首先,您将不断获得GPS位置,直到达到所需的精度,对于未来的任何点,在获得良好位置之前,您可能会获得多个不准确的点。因此,构建这些点的列表基本上就是它们的路径列表,以及许多额外的点。 你可以通过只保存那些具有你想要的准确性的点来解决这个问题,但在这方面这是一个不完美的世界 最好的情况是,我建议您保留两个列表,一个是路径,另一个是正在比较的位置的运行列表,直到您得到一个高度准确的位置,然后将其放在您的路径列表中。
一些示例项目按照这些思路进行操作,请查看它们。非常简短的版本: 首先,在.h中采用
协议,并导入
然后,在.m中,go:
- (void)viewDidLoad {
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
}
-(void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
CLLocationCoordinate2D here = newLocation.coordinate;
NSLog(@"%f %f ", here.latitude, here.longitude);
}
您的-(void)locationManager:(CLLocationManager*)manager diddupdatetolocation:(CLLocation*)newLocation fromLocation:(CLLocation*)oldLocation
方法将在每次核心位置对您有话要说时被ping,这应该每隔几秒钟发生一次。这些CLLocation对象包含有关精度的信息,因此您可以在该方法中筛选好的点
一定要调用[locationManager StopUpdatengLocation]
,然后在某个时候调用[locationManager release]
祝你找到自己 您必须执行以下操作:
如果设备无法访问internet
从GPS设备获取坐标
通过短信发送这些坐标
在SMS网关上接收和解码SMS消息,您必须进行配置以从设备接收信息
更新应用程序数据库或正在使用的任何其他存储上的信息
用最新信息更新地图上的位置
如果设备可以访问互联网
从GPS设备获取坐标
连接到应用服务器(可能是某些服务)并上载信息
更新应用程序数据库或正在使用的任何其他存储上的信息
用最新信息更新地图上的位置
我可能错了,应该是:NSLog(@“%f%f,%@”,here.lation,here.longitude);不是:NSLog(@“%f%f”,here.latitude,here.longitude);哦,完全正确。这将给您带来严重的访问错误。更正。即使应用程序最小化,更新位置标记器也会工作吗?@kmehta-要在应用程序处于后台时工作,您需要将info.plist键“UIBackgroundModes”设置为“location”。如果你这样做的话,你应该期待一个非常严重的电池寿命下降!忘掉1。如果你没有互联网,你就无法从设备中获取坐标。至少在用户未按下“发送”键的情况下。iOS不允许在没有用户交互的情况下发送SMS。