前奏. 知识点介绍php
一. 导航和画线ios
二. 百度地图数组
三. 社交分享微信
一. 导航和画线网络
1. 地图画线 (理解)框架
要进行画线—-> 须要获取起始点及终点位置—-> 建立方向对象计算路线—->获取路线添加到地图上—-> 设置渲染对象编码
注意: 实现画线, 须要请求用户受权. 画线时须要获取用户的当前位置, 此时, 就必须在当前程序中请求受权.spa
/** 1. 须要请求受权 2. 建立一个方向请求对象来计算路线, 并获取路线轨迹, 添加到地图上 3. 将路线轨迹渲染到地图上 */ - (void)routeWithSourceItem:(MKMapItem *)sourceItem destinationItem:(MKMapItem *)destinationItem { //1. 建立方向请求对象 --> 拼接请求参数 MKDirectionsRequest *request = [MKDirectionsRequest new]; request.source = sourceItem; request.destination = destinationItem; //2. 建立一个方向对象 --> 建立一个完整的请求URL MKDirections *directions = [[MKDirections alloc] initWithRequest:request]; //3. 计算路线 --> 发送请求 [directions calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) { //3.1 防错处理 if (error || response.routes.count == 0) { NSLog(@"出错"); return ; } //3.2 获取路线信息 --> 取一个 MKRoute *route = response.routes.firstObject; //polyline: 折线 --> 也就是实际的路线轨迹 //Overlay: 遮盖物 [self.mapView addOverlay:route.polyline]; }]; } //只要地图添加了addOverlay了, 就会来到此方法, 设置渲染 //MKOverlay:遮盖物 Renderer:渲染 - (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay { //1. 建立折线渲染物对象 MKPolylineRenderer *polyline = [[MKPolylineRenderer alloc] initWithOverlay:overlay]; //2. 设置颜色 --> 必须的 polyline.strokeColor = [UIColor blueColor]; polyline.lineWidth = 5; //3. 返回此对象 return polyline; }
二. 百度地图翻译
1. 集成百度地图 (掌握)代理
#pragma mark 1. 集成百度地图 (掌握)
一. 为何更多的开发者使用第三方SDK?
1. 第三方SDK有文档, 有Demo, 使用方便
2. 为了统一各个平台的经纬度问题(火星坐标)
二. SDK的使用流程
1. 第三方SDK(开发组件包, 须要注册才能使用 --> 须要建立应用 --> 须要获取受权码 --> Appdelete中注册 ) > 第三方类库(AFN/SDWebImage)
2. 集成文档的查看顺序 仔细看文档就能够实现.
3. 按照须要的功能, 拷贝对应的代码, 修改细节便可
三. 集成百度地图的流程
1. 注册开发者, 注册应用程序 --> Key
2. 开发指南 --> 配置开发环境 --> Hello BaiduMap --> 注意事项
3. 按照须要的功能找对应的文档代码,若是文档有问题,能够参考Demo
2. POI检索 (掌握)
- (void)poiSearch { //初始化检索对象 _searcher =[[BMKPoiSearch alloc]init]; _searcher.delegate = self; //发起检索 --> 拼接参数 BMKNearbySearchOption *option = [[BMKNearbySearchOption alloc]init]; ///分页索引,可选,默认为0 option.pageIndex = 0; ///分页数量,可选,默认为10,最多为50 option.pageCapacity = 10; option.location = CLLocationCoordinate2DMake(39.915, 116.404); option.keyword = @"小吃"; //这里至关于在发送网络请求 用search对象拼接了otion的参数 BOOL flag = [_searcher poiSearchNearBy:option]; if(flag) { NSLog(@"周边检索发送成功"); } else { NSLog(@"周边检索发送失败"); } } //实现PoiSearchDeleage处理回调结果 - (void)onGetPoiResult:(BMKPoiSearch*)searcher result:(BMKPoiResult*)poiResultList errorCode:(BMKSearchErrorCode)error { if (error == BMK_SEARCH_NO_ERROR) { //在此处理正常结果 //1. 直接显示大头针 //2. 显示TableView //从poi结果数组中获取 for (BMKPoiInfo *poiInfo in poiResultList.poiInfoList) { // 添加一个PointAnnotation BMKPointAnnotation* annotation = [[BMKPointAnnotation alloc]init]; annotation.coordinate = poiInfo.pt; annotation.title = poiInfo.name; [_mapView addAnnotation:annotation]; } } else if (error == BMK_SEARCH_AMBIGUOUS_KEYWORD){ //当在设置城市未找到结果,但在其余城市找到结果时,回调建议检索城市列表 // result.cityList; NSLog(@"起始点有歧义"); } else { NSLog(@"抱歉,未找到结果"); } }
三. 社交分享
1. 系统自带分享 (了解)
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { //1. 判断分享的类型是否可用 if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeSinaWeibo]) { NSLog(@"请到设置中添加新浪微博帐号, 而后在分享"); return; } //2. 建立分享控制器 SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo]; //2.1 文字 [composeVC setInitialText:@"拉斯维加斯之夜, 一不当心输了2个亿, 就是为了图个开心"]; //2.2 图像 [composeVC addImage:[UIImage imageNamed:@"1"]]; //2.3 网址 [composeVC addURL:[NSURL URLWithString:@"http://www.itcast.cn"]]; //3. 模态弹出 [self presentViewController:composeVC animated:nil completion:nil]; }
2. 友盟分享 (掌握)
3. SSO受权 (理解)
SSO受权: 单点登陆. 获取受权时(譬如微博), 若是手机已经安装对应的客户端(譬如微博客户端), 则可经过对应的官方客户端快速完成OAuth2.0受权。