iOS开发 百度地图高德地图谷歌地图系统地图

本文探讨了iOS开发中的地图与定位功能,包括系统自带的地图服务和第三方地图API,如百度、高德和谷歌地图。首先,介绍了利用CoreLocation框架进行定位,讲解了CLLocationManager、CLLocation和CLGeocoder的使用。接着,简要概述了如何集成和使用UIKit地图功能。文章提供了一段权限申请和定位的示例代码,并预告了将要介绍的第三方地图API。
摘要由CSDN通过智能技术生成

在这篇文章里, 你可以学习到:

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值