iOS地图开发
原文地址:http://www.jianshu.com/p/1ae98a3ff9e4
在iOS中, 地图开发经常会用到的三个框架, 一个是苹果系统自带的MapKit框架, 另外两个, 一个是百度地图BMKMapView, 另一个是高德地图MAMapView. 当时我莫名的对一个问题产生了浓厚的兴趣, 就是百度地图和高德地图英文命名是什么意思!? 于是我就毫不蛋疼的去googol了, 而且还在他俩的社区提问这个问题! 终于, 在我的努力下弄明白他俩代表的意思了.
先看百度地图 BMKMapView, 代表的就是Baidu Map Kit MapView
再看高德地图 MAMapView, “A map”就是一张地图,这个品牌的诞生就是为了做好一张地图。
对于地图开发, 我觉得还应该从高处把握, 然后一点一点往下剥, 思路会非常清晰. 其实, 不单单是地图开发, 对于iOS其他知识的学习也应该从高处把握, 否则, 会感觉凌乱, 没有头绪. 下面我们就看看怎么从高处把握地图开发的框架. (以高德地图为例, 百度地图其实也是一样的, 只是换了个名字).
我觉得这个"高"主要体现在两个方面, 一个是把握好下面这些类, 而这些类就是一个主线, 是形成在我们脑海里的主干线路, 要理清楚哪一条道是转弯道, 哪一条道是单行道, 哪一条是非机动车道, 每一个类的功能都了然于胸, 用的时候自然而然很快速的找到我们所需要的.
类 | 解释 |
---|---|
BMKMapView | 地图显示 |
BMKLocationService | 定位 |
BMKPoisearch | 周边检索 |
BMKAnnotationView | 标注 |
BMKGeoCodeSearch | 地理编码 |
BMKOverlayView | 覆盖物图层 |
BMKOfflineMap | 离线地图 |
上面是百度地图的一些类, 高德地图其实是一样的, 就是名字变了而已.
类 | 解释 |
---|---|
MAMapView | 地图显示 |
MAUserLocation | 定位 |
AMapSearchAPI | 周边检索 |
MAAnnotationView | 标注 |
AMapGeocode | 地理编码 |
MAOverlayView | 覆盖物图层 |
MAOfflineMap | 离线地图 |
这个地方你就会明白为什么开头会讲到他俩英文命名的含义了吧. 后面要说到的方法也是这个道理, 咱们要找到共性, 区别差异. 所以, 更简单的就是7个英文单词.
主干 | 解释 |
---|---|
MapView | 地图显示 |
Location | 定位 |
Search | 周边检索 |
Annotation | 标注 |
Geocode | 地理编码 |
Overlay | 覆盖物图层 |
Offline | 离线地图 |
所以, 你不用为一长串一长串的方法苦恼了, 这是一个单词匹对的游戏.
好了, 目前为止咱们这个主干就建立起来了, 有什么需求就尽管提吧. 拿最基本的一个需求来说吧---地图显示. 根据咱们的主干知识, 快速定位, 很明了, 就是MAMapView. 到这就要用到我之前博客里说到的方法《iOS学习技巧之"查"》, 点进去看, 注释都是中文的, 是不是更方便了.
当然, 除此之外, 再配合百度地图和高德地图官方资料教程, 以及googol的各种资料, 拿下地图这一块不是问题.
最后分享一些资料给大家
高德地图iOS SDK 3D地图&搜索服务参考手册 V2.4.1
高德地图视频教程
如何使用IOS SDK进行开发01——开发你的第一个地图应用
如何使用IOS SDK进行开发03——自定义AnnotationView
高德地图开发者认证群: 253476702