1.MapKit: 着重与在手机上显示地图,地图上可以显示路线,覆盖层,大头针

2.如何添加大头针:

#**需要自定义,因为用户的大头针位置是无法改变

#**自定义注意点:

#****要遵守MKAnnotation这个协议

#****实现这个协议必须实现的方法

#****可以给协议增加方法,以达到设置这个属性的值

#**创建大头针

#**设置经纬度(title, subTitle)

#**添加到地图上面

3.大头针的理论基础

#**操作大头针就是操作大头针数据模型

#**添加大头针就是添加大头针的数据模型

#**删除大头针就是删除大头针的数据模型

4.大头针是如何显示出来的

#**当将一根大头针的数据模型添加到地图上时,会调用对应的代理方法,在内部创建大头针视图并返回,之后显示在地图上

#**系统默认的大头针的视图的类型MKPinAnnotationView

 

 

 

一.代码:01-01(掌握)地图的基本使用(显示类型&地图控制&显示控制)  // POI: point of intreset

 

 

七.代码: 07-01(了解)导航-方案3-第三方-百度地图-集成百度地图SDK(百度开发平台模块: iOS地图SDK)

# 1.生成秘钥key: "iA5UyEGFTdQ4iFe6FGdeGryhjPfpUXFm

# 2.配置inf.plist文件: 01."App Transport Security Settings"&&"Allow Arbitrary Loads"

#   02."Privacy - Location When In Use Usage Description"--"地图定位测试"

#       或者"NSLocationAlwaysUsageDescription"--"地图定位测试"

#   03."Bundle display name"--"$(PRODUCT_NAME)"

#   04.添加系统以来库: // CoreLocation.framework

// QuartzCore.framework

// OpenGLES.framework

// SystemConfiguration.framework

// CoreGraphics.framework

// Security.framework

// libsqlite3.0.tbd(xcode7以前为 libsqlite3.0.dylib)、CoreTelephony.framework

// libstdc++.6.0.9.tbd(xcode7以前为libstdc++.6.0.9.dylib)

#  05.单独引入mapapi.bundle资源文件(在"BaiduMapAPI_Map.framework"中)

 

七.代码: 07-01(了解)导航-方案3-第三方-百度地图-集成百度地图SDK

#  1.初始化检索对象,并设置BMKPoiSearch 代理

// 实现代理: 返回POI搜索结果

//func onGetPoiResult(_ searcher: BMKPoiSearch!, result poiResult: BMKPoiResult!, errorCode: BMKSearchErrorCode) {...}

/// 当检索到结果的时候会来到的方法

//当在设置城市未找到结果,但在其他城市找到结果时,回调建议检索城市列表

#  2. 设置BMKMapView代理

// 实现代理: 长按地图时会回调此接口

//func mapview(_ mapView: BMKMapView!, onLongClick coordinate: CLLocationCoordinate2D) {...}

//发起检索

 

七.代码: 07-03(了解)导航-方案3-第三方-百度地图-添加大头针

#  1.设置地图显示区域:

//let span = BMKCoordinateSpan(...)

//let region = BMKCoordinateRegion(...)

//mapView.setRegion(region, animated: true)

#  2.获取poi列表: poiResult.poiInfoList as? [BMKPoiInfo]

 

#  3.添加大头针:

//let annotaion = BMKPointAnnotation()

//annotaion.coordinate = poiInfoList.pt

//annotaion.title = poiInfoList.name

//annotaion.subtitle = poiInfoList.address

//mapView.addAnnotation(annotaion)

 

七.代码: 07-04(了解)导航-方案3-第三方-百度地图-集成百度导航SDK(百度开发平台模块: iOS导航SDK)

#   小功能: "双指放大缩小: commamd + option

#  1.导入BaiduNaviSSDK

#  2.设置定位服务,并设置代理:

"lazy var locService : BMKLocationService = {...}()

#  3.遵守并实现位置服务代理

// 1.获取用户位置

// 获取用户一次位置

"locService.stopUserLocationService()

// 2.进行导航

// 节点数组

"var nodesArray = [BNRoutePlanNode]()

// 3.起点

"let startNode = BNRoutePlanNode()

"nodesArray.append(startNode)

// 4.终点

"let endNode = BNRoutePlanNode()

"nodesArray.append(endNode)

// 5.发起路径规划

"BNCoreServices.routePlanService().startNaviRoutePlan(BNRoutePlanMode_Recommend, naviNodes: nodesArray, time: nil, delegete: self, userInfo: nil)

#  4.遵守并实现算路代理

// 算路成功回调

"func routePlanDidFinished(_ userInfo: [AnyHashable : Any]!) {...}

//路径规划成功,开始导航

"BNCoreServices.uiService().showPage(BNaviUI_NormalNavi, delegate: nil, extParams: nil)