iOS开发系列--地图与定位 good
//如果没有授权则请求用户授权 if ([CLLocationManager authorizationStatus]==kCLAuthorizationStatusNotDetermined){ [_locationManager requestWhenInUseAuthorization]; }else if([CLLocationManager authorizationStatus]==kCLAuthorizationStatusAuthorizedWhenInUse){ //设置代理 _locationManager.delegate=self; //设置定位精度 _locationManager.desiredAccuracy=kCLLocationAccuracyBest; //定位频率,每隔多少米定位一次 CLLocationDistance distance=10.0;//十米定位一次 _locationManager.distanceFilter=distance; //启动跟踪定位 [_locationManager startUpdatingLocation]; }
在iOS8的设备上,使用高德地图SDK你会发现MAMapView里的回调位置是空的。
在iOS8上currentLocation是空的,导致定位失败了。我们知道苹果在iOS8上对定位进行了大幅度优化,可以支持室内定位,常去地点统计,楼层等。
高德失败的原因可能是未对iOS8做适配。
解决方法是:
1.工程的info.plist添加NSLocationWhenInUseDescription,NSLocationAlwaysUsageDescription字段,不同的字段对应的方法不同
NSLocationWhenInUseUsageDescription,允许在前台获取GPS的描述
NSLocationAlwaysUsageDescription,允许在后台获取GPS的描述(如果app需要在后台获取用户位置可以添加这个)
这两个字段没什么特别的意思,就是自定义提示用户授权使用地理定位功能时的提示语。
2.[_locationmanager requestAlwaysAuthorization]; //NSLocationAlwaysUsageDescription
[_locationmanager requestWhenInUseAuthorization]; //NSLocationWhenInUseDescription
ios8 关于定位的一些问题
iOS8 定位问题 有设置图
MKMapView load warning: Please open a radar 求教
开启允许 在前后台 获取GPS描述就好了
移动端地图技术分享
iOS原生地图开发进阶——使用导航和附近兴趣点检索 good
IOS定位服务的应用
在IOS8之后,IOS的定位服务做了优化,若要使用定位服务,必须先获取用户的授权。
首先需要在info.plist文件中添加一个键:NSLocationAlwaysUsageDescription或者NSLocationWhenInUseUsageDescription。其中NSLocationAlwaysUsageDescription是要始终使用定位服务,NSLocationWhenInUseUsageDescription是只在前台使用定位服务。
//如果没有授权则请求用户授权
if ([CLLocationManager authorizationStatus]==kCLAuthorizationStatusNotDetermined){
[_locationManager requestWhenInUseAuthorization];
}else if([CLLocationManager authorizationStatus]==kCLAuthorizationStatusAuthorizedWhenInUse){
//设置代理
_locationManager.delegate=self;
//设置定位精度
_locationManager.desiredAccuracy=kCLLocationAccuracyBest;
//定位频率,每隔多少米定位一次
CLLocationDistance distance=10.0;//十米定位一次
_locationManager.distanceFilter=distance;
//启动跟踪定位
[_locationManager startUpdatingLocation];
}
iOS定位服务与地图应用开发:高德地图开发
CLLocationMananger是定位服务管理类,获取设备的位置信息,CLLocationManangerDelegate是代理协议,CLLocation封装了位置信息。
iOS开发——使用Swift语言开发基于高德地图的LBS应用 good
iOS地图定位(定位、地理编码与反地理编码、mapView、大头针、导航)
【iOS】苹果,百度Map定位使用与总结
地图类型有3种:
MKMapTypeStandard:标准地图。
MKMapTypeSatellite:卫星地图类型。
MKMapTypeHybrid:混合地图类型。