近期做时空数据可视化作业时,老师要求阅读论文或者实现项目,在谷歌学术上找到类似一篇文章实现了一个分布式的时空数据可视化的Web应用(如下图所示)。一下子来了兴趣,想起以前做过IOS的移动开发,以下几篇将利用IOS原生地图进行同型开发。近期做时空数据可视化作业时,老师要求阅读论文或者实现项目,在谷歌学术上找到类似一篇文章实现了一个分布式的时空数据可视化的Web应用(如下图所示)。一下子来了兴趣,想起以前做过IOS的移动开发,以下几篇将利用IOS原生地图进行同型开发。
本篇内容:实现地图显示 瓦片加载
Web应用截图
一、环境准备
IOS自带的Mapkit内核也是高德地图,因此其api与高德地图基本一致。因此,不是对卫星影像分辨率有过高要求的情况,MapKit基本都能满足;此外,MapKit也给出了瓦片的覆盖方法,因此Google卫星等其他地图瓦片的在线加载也是可以实现的。
1、依赖、头文件引入
不同于高德SDK需要导入,MapKit自带编译好的静态库<MapKit.framework>和头文件<MapKit/MapKit.h>,因此使用起来非常方便。
导入头文件
添加依赖库
2、地图显示-MapView
完成以上步骤后,可以在代码中使用MapKit中的方法了,最基础的地图显示视图就是——MapView。一般情况下可以在storyboard拖用控件或者纯代码设置frame进行使用。
如下图编辑MapView的类型,并设置代理指向后即可。
storyboard拖入MKMapView控件
MapView基本显示
当然,MapView还有许多可控属性和委托,从其头文件中可以看到,不同情况需要具体使用,如下图:
MapView内部
3、设置Info.plist
完成以上步骤可以愉快的编写代码,但是在设置好MapView位置大小后,运行程序,发现并不能出现地图显示,原因是加载地图的权限设置需要开启,如下:
info.plist
再次运行,可以见到地图瓦片的加载啦!此外,本次应用不需要开启用户位置,如果需要用到定位功能,则还需要引入CLLocationManager的头文件,并且设置对应的Location权限哦!
4、常用委托
委托作为IOS的一大特色,MapKit中实用的委托也有不少,这些委托可以实现除了地图显示之外的许多功能,如下图所示:
MkMapView常用委托
5、谷歌卫星瓦片加载
在上文中提到的MapView的MapType可以修改地图的类型,常见的有标准、卫星、混合等等,但是需要加载清晰度更好的卫星影像则需要再覆盖一层第三方瓦片:
生产瓦片 加载瓦片实现对应的委托:
MKOverlay委托
网友评论