IOS开发入门之iOS LBS地图服务:高德地图定位说明
凌雪 2018-10-10 来源 :网络 阅读 1107 评论 0

摘要:本文将带你了解IOS开发入门iOS LBS地图服务:高德地图定位说明,希望本文对大家学IOS有所帮助。

本文将带你了解IOS开发入门iOS LBS地图服务:高德地图定位说明,希望本文对大家学IOS有所帮助。


       

iOS 11出现了四种定位隐私设置 iOS   11不能定位问题 iOS 11定位隐私选择提示框说明定位原因否则被拒 选择使用应用期间定位屏幕顶部讨厌的蓝色闪烁提示框 如何不出现蓝色定位闪烁提示框   高德地图后台持续定位关键代码

iOS   11出现了四种定位隐私设置


   

Privacy - Location Always and When In Use Usage   Description

Privacy - Location   Always Usage Description

Privacy   - Location When In Use Usage Description

Privacy - Location Usage   Description

   

iOS 11不能定位问题


   

//必须选上,不选上的话,其他三种定位隐私即使设置了也不会出现定位效果

Privacy - Location Always and When In Use Usage   Description

   

log日志会出现如下错误提示


This app has attempted to access privacy-sensitive data   without a usage description.

The app's Info.plist must contain both   NSLocationAlwaysAndWhenInUseUsageDescription and   NSLocationWhenInUseUsageDescription keys with string values explaining to the   user how the app uses this data

   

iOS   11定位隐私选择提示框说明定位原因,否则被拒

填写定位说明原因的位置

效果

选择使用应用期间定位–屏幕顶部讨厌的蓝色闪烁提示框

开启的后台持续定位,这个蓝色的闪烁提示框是iOS系统内部增加的,谁也没办法去掉,除非没有做后台持续定位,在选择使用应用期间,APP进入后台就会出现这个蓝色闪烁提示框

如何不出现蓝色定位闪烁提示框

1.引导用户选择始终允许定位(始终允许或者不允许的情况下,后台持续定位不会出现蓝色闪烁提示框)

2.使用苹果自带的CLLocationManager,修改定位优先级权限


   

//使用期间定位

-   (void)requestWhenInUseAuthorization   API_AVAILABLE(ios(8.0))   API_UNAVAILABLE(macos);

//始终允许定位

-   (void)requestAlwaysAuthorization   API_AVAILABLE(ios(8.0))   API_UNAVAILABLE(macos)   __TVOS_PROHIBITED;

   

去设置默认定位优先级为始终允许定位

3.不做后台持续定位功能!!!!!

高德地图后台持续定位关键代码


   

#import <mamapkit mamapkit.h="">

#import

#import

 

@interface AppDelegate   ()

//定位数据管理

@property (nonatomic, strong) AMapLocationManager   *locationManager;

/**

 *  后台定位是否返回逆地理信息,默认NO。

 */

@property (nonatomic, assign) BOOL   locatingWithReGeocode;

@end</amaplocationmanagerdelegate></amaplocationkit></amapfoundationkit></mamapkit>

   


   

#pragma mark - 后台定位和持续定位。

- (void)initLocation{

    self.locationManager = [[AMapLocationManager   alloc] init];

    self.locationManager.delegate =   self;//遵守代理,实现协议

    //设置定位最小更新距离方法如下,单位米。当两次定位距离满足设置的最小更新距离时,SDK会返回符合要求的定位结果。

    self.locationManager.distanceFilter =   100;

 

    //开启持续定位

    //iOS 9(不包含iOS 9)   之前设置允许后台定位参数,保持不会被系统挂起

    [self.locationManager   setPausesLocationUpdatesAutomatically:NO];

 

    //iOS 9(包含iOS   9)之后新特性:将允许出现这种场景,同一app中多个locationmanager:一些只能在前台定位,另一些可在后台定位,并可随时禁止其后台定位。

    if ([[[UIDevice currentDevice] systemVersion] floatValue]   >= 9) {

        self.locationManager.allowsBackgroundLocationUpdates =   YES;

    }

 

    //      如果需要持续定位返回逆地理编码信息

    [self.locationManager   setLocatingWithReGeocode:YES];

 

    //开始持续定位

    [self.locationManager startUpdatingLocation];

}

#pragma mark -   在回调函数中,获取定位坐标,进行业务处理--传递给后台。

-   (void)amapLocationManager:(AMapLocationManager   *)manager didUpdateLocation:(CLLocation *)location   reGeocode:(AMapLocationReGeocode *)reGeocode{

    NSLog(@"location:{纬度lat:%f; 经度lon:%f; accuracy:%f}", location.coordinate.latitude,   location.coordinate.longitude,   location.horizontalAccuracy);

    if (reGeocode){

//          NSLog(@"reGeocode:%@", reGeocode);

        [self   activityCodeWithLocation:location];

    }

}

 

#pragma mark -   上传经纬度到后台,记录活动轨迹

-   (void)activityCodeWithLocation:(CLLocation   *)location{

 

    NSString *URLString = @"api/xxxxx";

    NSDictionary *parameters =   @{

                                        @"xPosition":[NSString stringWithFormat:@"%f",location.coordinate.longitude],

                                        @"yPosition":[NSString stringWithFormat:@"%f",location.coordinate.latitude]

                                        };

 

    [NetworkTool requestWithType:requestTypePOST   URLString:URLString parametersAuthority:parameters success:^(id    _Nullable responseObject) {

       ZYLog(@"%@",responseObject);

    } failure:^(NSError * _Nonnull error)   {

        ZYLog(@"%@",error);

    }];

 

}

   

    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!


本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程