在这篇文章里, 你可以学习到:
1.iOS系统地图
2.百度地图的简单了解
3.高德地图的简单了解
4.谷歌地图的简单了解
一.系统自带地图
首先需要明白, 地图和定位是两个功能.
- 定位: 通过GPS或者Wifi或者蜂窝数据定位到手机的具体物理位置, 返回值通常是一个地理坐标.
- 地图: 和我们实际生活中的地图类似, 基本作用是展示, 至于其中的插大头针, 导航, 查询公交等功能, 并不是其基本功能.
在iOS系统中, 二者分别依赖下面两个库:
1 2 3 4 |
# 定位 #import <CoreLocation/CoreLocation.h> # 地图 #import <MapKit/MapKit.h> |
定位功能:
地图功能:
定位CoreLocation
通过导图我们介绍框架下的三个常用的类, 定位管理类(CLLocationManager), 坐标类(CLLocation) 和 编码/反编码类(CLGeocoder).
- CLLocationManager: 就像文件管理类一样, 它负责你的app在有关定位功能配置方面的设置. 比如定位开关, 定位精度, 权限申请等功能设置.
- CLLocation: 此类对象下有如下属性和方法:
所以, 我们一旦得到某个坐标, 即可通过其方法和属性获得其相应的值.- CLLocationCoordinate2D(类型:坐标) - CLLocationDistance(类型:位置距离) - coordinate(属性:经纬度) * altitude(海拔) * course(航向) * speed(行走速度) * distanceFromLocation(方法:计算两个位置之间的距离)
- CLGeocoder: 此类提供两个方法:
* geocodeAddressString(坐标变地名) * reverseGeocodeLocation(地名换坐标)
我们通过下面一段代码来解释其中的过程:
新建工程, 在info.plist中插入一条:
NSLocationWhenInUseUsageDescription 类型为String, 值为随意, 这个是在请求权限时给用户看的.
在ViewController.m填写:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |