iOS 系统自带地图整理

知识补充:

地理解析:把普通用户能看懂的字符串地址转换成经度和纬度;

反地理编码:把经度纬度转换成普通的字符串地址;

为此iOS为地址解析提供了CLGeocoder工具类。

地理编码:

地理编码

反地理编码:

自定义锚点:

iOS的锚点只是一个红色的头针,但有时候我们需要自定义锚点的外观。对于iOS的地图而言,锚点实际上由两个部分组成。一是锚点信息:锚点信息包括锚点的位置标题副标题等信息,这些信息由MKAnnotation对象代表。二是锚点控件:锚点控件决定地图上显示的锚点外观,包括锚点图片等。

代码如下:

自定义锚点:

获取导航线路

MKDirections类,该类可通过MKDirectionsRequest向apple服务器发送导航请求,apple服务器将会返回一条或多条导航线路,然后通过覆盖层把其中一条或者多条导航线路绘制在地图上,这样可以提醒用户进行导航。

利用CLGeocoder进行地址解析,将用户输入的地址解析成CLPlacemark,利用MKDirections根据起始点,结束点获取导航路线,调用覆盖层绘制导航线路。

总结:

MapKit框架的主要作用就是iOS应用中增加地图功能,mapkit框架的基础部分就是MKMapKit,MKMapViewDelegate,通过这些API即可在应用中增加地图并处理地图加载相关事件。除此之外,如果地图上添加锚点,则需要借助MKAnnotation协议,MKAnnotation和MKPinAnnotationView;如果希望在地图上添加覆盖物,则需要借助于MKOverlay协议和MKOverlayRenderer的各种子类。

推荐阅读更多精彩内容