一、简介:
Mapbox致力于打造全球最漂亮的个性化地图。官网地址:(https://www.mapbox.com/)
因为学习的需求接触到了Mapbox这个开源的第三方组件库,这个地图支持高度自定义各种地图元素,比如,道路,水系,绿地,建筑物,背景色,等等。Mapbox打造的Mapbox studio地图制作虚拟工作室,就是一个很完美的地图元素个性化编辑器。另外,我们也可以把自己项目的地理信息数据上传到Mapbox云端,然后在自己项目的客户端展现出来。
Mapbox地图数据来源于Open Street Map(OSM)等其他地图数据供应商,和Google Map、Apple Map等地图厂商的地图数据来源差不多。
总之,Mapbox功能非常强大,可以支持我们进行各种地图开发工作,因为我的任务主要是iOS端的导航开发,所以后面就简单介绍怎么在你的Mac上配置Mapbox。
二、注册
这里我默认认为安装Mapbox肯定是为了使用(虽然这是一句废话),所以在安装配置之前建议先注册一个账号,这是完全免费的,而且更重要的是在后面你会需要用到令牌(public token),这个后面会介绍。
根据引导选择iOS的SDK平台,注册完毕后在你得Account界面会出现一串神秘代码,那个就是令牌:
三、安装
1.使用CocoaPods安装
CocoaPods是iOS中的源代码依赖管理工具,他们可以帮你下载第三方包 并管理这些包的依赖关系。使用起来非常方便。
这也是Mapbox首推的安装方法。
将如下代码加到Podfile中:
use_frameworks!
target 'TargetNameForYourApp' do
pod 'Mapbox-iOS-SDK', '~> 6.1.0'
end
然后运行
pod install
等待就行。
然而,CocoaPods安装虽然方便,但同时也会遇到几个问题(当然这是我遇到的问题,如果你没有遇到那么恭喜你!)
(1)Mapbox的包不同于其他iOS的第三方插件只有几MB,而CocoaPods默认下载时源是从Github上download,因为众所周知的原因,从墙外download速度非常感人,又因为Mapbox比较大,所以网络失败是常事(尝试过挂VPN也没办法解决)。
(2)因为CocoaPods的默认源是外网的,可以考虑换成国内源(比如淘宝或者豆瓣源),我换的是清华的源。这里贴一下查询CoacoaPods源和换源的方法:
查询repo源:
pod repo
可以看到我目前的master源是清华的镜像。
切换成其他源的方法:
pod repo remove master
pod repo add master 'http://git.oschina.net/akuandev/Specs.git'
这里就不给大家贴结果了,只要再查询一下repo看看master是否替换为你切换的新源就OK(什么代码贴的是oschina的源)。
源切换成功后需要做的就是将Podfile中的source改为你切换的源就行:
切换源后虽然解决不了Mapbox下载问题,我认为可能得问题是国内源中很多没有Mapbox的资源吧,这个问题我没有深究,有研究的朋友可以帮我解解惑。
但是切换源后可以显著解决了下载其他第三方包的速度慢的问题。
(3)还有一位问题就是用Cocoapods安装Mapbox最新版本(6.1.0以后)需要配置秘密令牌(secret token)。
2.直接下载Dynamic版本
因为下载速度还有要配置秘密令牌的原因,我觉得直接下载可能更方便。
其实它这里已经给大家详细介绍了如何安装,我再啰嗦贴几张图:
下载后的文件夹如下:
将Mapbox.framwork和MapboxMobileEvents.framework两个文件夹拖入项目中的Frameworks一栏:
拖入后记得勾选Copy items if needed复选框。
拖入后去项目设置中,在Frameworks, Libraries, and Embedded Content下确定刚刚拖入的那个framework选择Embed & Sign:
同样的在项目设置中,Info中:
MGLMapboxAccessToken:后面添加的就是你Account中的公共令牌;
MGLMapboxMetricsEnableSettingShownInAPP:BOOL类型,默认YES
NSLocationWhenInUseUsageDescription/NSLocationAlwaysUsageDescrition: 任意字符串即可
四、测试
最后设置完毕Build一下看看能不能调用Mapbox就大功告成了!顺带贴一下Mapox-iOS的一些官方实例:(https://docs.mapbox.com/ios/maps/examples/)