map.md 21.0 KB
Newer Older
Q
qiang 已提交
1 2 3 4 5 6 7 8
#### map

地图组件。

地图组件用于展示地图,而定位API只是获取坐标,请勿混淆两者。

**平台差异说明**

study夏羽's avatar
study夏羽 已提交
9 10 11
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序、飞书小程序|QQ小程序|快应用|360小程序|快手小程序|京东小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|1.63+|1.9.0+|√|x|x|√|
Q
qiang 已提交
12

d-u-a's avatar
d-u-a 已提交
13 14 15 16
**地图服务商说明**

|地图服务商|App|H5|微信小程序|
|:-:|:-:|:-:|:-:|
DCloud-WZF's avatar
DCloud-WZF 已提交
17
|高德|√|3.6.0+||
d-u-a's avatar
d-u-a 已提交
18 19 20 21
|Goolge|3.4+|3.2.10+||
|腾讯||√|√|


Q
qiang 已提交
22 23 24 25 26 27 28
**属性说明**

|属性名|类型|默认值|说明|平台差异说明|
|:-|:-|:-|:-|:-|
|longitude|Number||中心经度||
|latitude|Number||中心纬度||
|scale|Number|16|缩放级别,取值范围为3-20|高德地图缩放比例与微信小程序不同|
study夏羽's avatar
study夏羽 已提交
29
|theme|String|normal|主题(satellite 或 normal)只在初始化时有效,不能动态变更(仅Android支持)|京东小程序|
Q
qiang 已提交
30 31
|min-scale|Number|3|最小缩放级别|App-nvue 3.1.0+、微信小程序2.13+|
|max-scale|Number|20|最大缩放级别|App-nvue 3.1.0+、微信小程序2.13+|
d-u-a's avatar
d-u-a 已提交
32
|layer-style|Number/String|1|个性化地图|App-nvue 3.1.0+、微信小程序2.13+|
Q
qiang 已提交
33
|markers|Array||标记点||
34
|polyline|Array||路线|飞书小程序不支持|
Q
qiang 已提交
35 36
|circles|Array||圆||
|controls|Array||控件||
study夏羽's avatar
study夏羽 已提交
37
|include-points|Array||缩放视野以包含所有给定的坐标点|App-nvue 2.1.5+、微信小程序、H5、百度小程序、支付宝小程序、京东小程序|
Q
qiang 已提交
38 39 40 41 42 43 44 45 46 47
|enable-3D|Boolean|false|是否显示3D楼块|App-nvue 2.1.5+、微信小程序2.3.0|
|show-compass|Boolean|false|是否显示指南针|App-nvue 2.1.5+、微信小程序2.3.0|
|enable-zoom|Boolean|true|是否支持缩放|App-nvue 2.1.5+、微信小程序2.3.0|
|enable-scroll|Boolean|true|是否支持拖动|App-nvue 2.1.5+、微信小程序2.3.0|
|enable-rotate|Boolean|false|是否支持旋转|App-nvue 2.1.5+、微信小程序2.3.0|
|enable-overlooking|Boolean|false|是否开启俯视|App-nvue 2.1.5+、微信小程序2.3.0|
|enable-satellite|Boolean|false|是否开启卫星图|App-nvue 2.1.5+、微信小程序2.7.0|
|enable-traffic|Boolean|false|是否开启实时路况|App-nvue 2.1.5+、微信小程序2.7.0|
|enable-poi|Boolean|false|是否展示 POI 点|App-nvue 3.1.0+|
|enable-building|Boolean|false|是否展示建筑物|App-nvue 3.1.0+ 支持 (**废除原enable-3D属性 高德地图默认开启建筑物就是3D无法设置**)|
study夏羽's avatar
study夏羽 已提交
48
|show-location|Boolean||显示带有方向的当前定位点|微信小程序、H5、百度小程序、支付宝小程序、京东小程序|
Q
qiang014 已提交
49
|polygons|Array.`<polygon>`||多边形|App-nvue 2.1.5+、App-vue 3.4.3+、H5 3.4.3+、微信小程序、百度小程序、支付宝小程序|
Q
qiang 已提交
50
|enable-indoorMap|Boolean|false|是否展示室内地图|App-nvue 3.1.0+|
study夏羽's avatar
study夏羽 已提交
51
|@markertap|EventHandle||点击标记点时触发,e.detail = {markerId}|App-nvue 2.3.3+、H5、微信小程序、支付宝小程序 (App和H5平台需要指定 marker 对象属性 id)|
Q
qiang 已提交
52 53 54
|@labeltap|EventHandle||点击label时触发,e.detail = {markerId} |微信小程序2.9.0|
|@callouttap|EventHandle||点击标记点对应的气泡时触发,e.detail = {markerId}||
|@controltap|EventHandle||点击控件时触发,e.detail = {controlId}||
study夏羽's avatar
study夏羽 已提交
55
|@regionchange|EventHandle||视野发生变化时触发|微信小程序、H5、百度小程序、支付宝小程序、京东小程序|
56
|@tap|EventHandle||点击地图时触发; App-nvue、微信小程序2.9支持返回经纬度||
Q
qiang 已提交
57 58 59 60
|@updated|EventHandle||在地图渲染更新完成时触发|微信小程序、H5、百度小程序|
|@anchorpointtap|EventHandle||点击定位标时触发,e.detail = {longitude, latitude}|App-nvue 3.1.0+、微信小程序2.13+|
|@poitap|EventHandle||点击地图poi点时触发,e.detail = {name, longitude, latitude}|微信小程序2.3.0+|

DCloud-WZF's avatar
DCloud-WZF 已提交
61
**注意**
Q
qiang 已提交
62 63

- `<map>` 组件的宽/高推荐写直接量,比如:750rpx,不要设置百分比值。
Q
qiang014 已提交
64
- 谷歌地图使用 `wgs84` 坐标,其他地图使用 `gcj02` 坐标,用错坐标类型会显示偏移。
Q
qiang 已提交
65 66
- App平台 `layer-style` 属性需要在地图服务商后台创建,值设置为高德后台申请的字符串,[详情](https://developer.amap.com/api/android-sdk/guide/create-map/custom)

Q
qiang 已提交
67 68 69 70 71
### 近期新增功能
1. 支持点聚合,适用于marker过多场景。
2. 支持彩虹蚯蚓线,常用于路线规划场景。
3. 覆盖物支持调整与其它地图元素的压盖关系。
4. 支持marker(小车)平移动画,适用于轨迹回放场景。
Q
qiang 已提交
72

Q
qiang 已提交
73 74 75 76 77 78 79 80 81
**markers**

标记点用于在地图上显示标记的位置

|属性|说明|类型|必填|备注|平台差异说明|
|:-|:-|:-|:-|:-|:-|
|id|标记点id|Number|是|marker点击事件回调会返回此id。建议为每个marker设置上Number类型id,保证更新marker时有更好的性能。最大限制9位数||
|latitude|纬度|Number|是|浮点数,范围 -90 ~ 90||
|longitude|经度|Number|是|浮点数,范围 -180 ~ 180||
study夏羽's avatar
study夏羽 已提交
82
|title|标注点名|String|否|点击时显示,callout存在时将被忽略|App-nvue 2.1.5+、微信小程序、H5、支付宝小程序、百度小程序、京东小程序|
Q
qiang 已提交
83
|iconPath|显示的图标|String|是|项目目录下的图片路径,支持相对路径写法,以'/'开头则表示相对小程序根目录;也支持临时路径||
study夏羽's avatar
study夏羽 已提交
84 85 86 87 88
|rotate|旋转角度|Number|否|顺时针旋转的角度,范围 0 ~ 360,默认为 0|App-nvue 2.1.5+、微信小程序、支付宝小程序、百度小程序、京东小程序|
|alpha|标注的透明度|Number|否|默认1,无透明,范围 0 ~ 1|App-nvue 2.1.5+、微信小程序、支付宝小程序、百度小程序、京东小程序|
|width|标注图标宽度|Number|否|默认为图片实际宽度|App-nvue 2.1.5+、微信小程序、H5、支付宝小程序、百度小程序、京东小程序|
|height|标注图标高度|Number|否|默认为图片实际高度|App-nvue 2.1.5+、微信小程序、H5、支付宝小程序、百度小程序、京东小程序|
|callout|自定义标记点上方的气泡窗口|Object|否|支持的属性见下表,可识别换行符。|App-nvue 2.1.5+、微信小程序、支付宝小程序、百度小程序、京东小程序|
study夏羽's avatar
study夏羽 已提交
89
|label|为标记点旁边增加标签|Object|否|支持的属性见下表,可识别换行符。|App-nvue 2.1.5+、微信小程序、H5、App、百度小程序、支付宝小程序|
study夏羽's avatar
study夏羽 已提交
90
|anchor|经纬度在标注图标的锚点,默认底边中点|Object|否|{x, y},x表示横向(0-1),y表示竖向(0-1)。{x: .5, y: 1} 表示底边中点|App-nvue 2.1.5+、微信小程序、H5、百度小程序、京东小程序|
Q
qiang 已提交
91
|clusterId|自定义点聚合簇效果时使用|Number|否||App-nvue 3.1.0+、微信小程序|
d-u-a's avatar
d-u-a 已提交
92
|customCallout|自定义气泡窗口|Object|否||App-nvue 2.1.5+、微信小程序、支付宝小程序|
Q
qiang 已提交
93 94 95 96 97 98
|aria-label|无障碍访问,(属性)元素的额外描述|String|否||App-nvue 3.1.0+、微信小程序|

**marker 上的气泡 callout**

|属性|说明|类型|平台差异说明|
|:-|:-|:-|:-|
study夏羽's avatar
study夏羽 已提交
99 100 101 102 103 104 105 106 107 108
|content|文本|String|App-nvue 2.1.5+、微信小程序、H5、百度小程序、京东小程序|
|color|文本颜色|String|App-nvue 2.1.5+、微信小程序、H5、百度小程序、京东小程序|
|fontSize|文字大小|Number|App-nvue 2.1.5+、微信小程序、H5、百度小程序、京东小程序|
|borderRadius|callout边框圆角|Number|App-nvue 2.1.5+、微信小程序、H5、百度小程序、京东小程序|
|borderWidth|边框宽度|Number|京东小程序|
|borderColor|边框颜色|String|京东小程序|
|bgColor|背景色|String|App-nvue 2.1.5+、微信小程序、H5、百度小程序、京东小程序|
|padding|文本边缘留白|Number|App-nvue 2.1.5+、微信小程序、H5、百度小程序、京东小程序|
|display|'BYCLICK':点击显示; 'ALWAYS':常显|String|App-nvue 2.1.5+、微信小程序、H5、百度小程序、京东小程序|
|textAlign|文本对齐方式。有效值: left, right, center|String|App-nvue 2.1.5+、微信小程序、百度小程序、京东小程序|
Q
qiang 已提交
109 110 111 112 113 114

**marker 上的标签 label**

|属性|说明|类型|平台差异说明|
|:-|:-|:-|:-|
|content|文本|String||
study夏羽's avatar
study夏羽 已提交
115 116
|color|文本颜色|String|App-nvue 2.1.5+、微信小程序、H5、百度小程序、支付宝小程序|
|fontSize|文字大小|Number|App-nvue 2.1.5+、微信小程序、H5、百度小程序、支付宝小程序|
117 118 119 120
|x|label的坐标,原点是 marker 对应的经纬度|Number|H5、百度小程序|
|y|label的坐标,原点是 marker 对应的经纬度|Number|H5、百度小程序|
|anchorX|label的坐标,原点是 marker 对应的经纬度|Number|App-nvue 2.1.5+、微信小程序|
|anchorY|label的坐标,原点是 marker 对应的经纬度|Number|App-nvue 2.1.5+、微信小程序|
Q
qiang 已提交
121 122
|borderWidth|边框宽度|Number|微信小程序、百度小程序|
|borderColor|边框颜色|String|微信小程序、百度小程序|
study夏羽's avatar
study夏羽 已提交
123 124 125
|borderRadius|边框圆角|Number|App-nvue 2.1.5+、微信小程序、百度小程序、支付宝小程序|
|bgColor|背景色|String|App-nvue 2.1.5+、微信小程序、百度小程序、支付宝小程序|
|padding|文本边缘留白|Number|App-nvue 2.1.5+、微信小程序、百度小程序、支付宝小程序|
Q
qiang 已提交
126 127 128
|textAlign|文本对齐方式。有效值: left, right, center|String|App-nvue 2.1.5+、微信小程序、百度小程序|
|customCallout|自定义气泡窗口|Object|App暂时不支持、微信小程序|
|aria-label|无障碍访问,(属性)元素的额外描述|String|App-nvue 3.1.0+、微信小程序|
Q
qiang 已提交
129 130
|joinCluster|是否参与点聚合|Boolean|App-nvue 3.1.0+、微信小程序|

Q
qiang 已提交
131
### 点聚合
Q
qiang 已提交
132

Q
qiang 已提交
133 134 135 136
当地图上需要展示的标记点 marker 过多时,可能会导致界面上 marker 出现压盖,展示不全,并导致整体性能变差。针对此类问题,推出点聚合能力。

使用流程如下:

D
DCloud_LXH 已提交
137 138 139 140
[MapContext.initMarkerCluster](/api/location/map?id=createmapcontext) 对聚合点进行初始化配置(可选);
[MapContext.addMarkers](/api/location/map?id=createmapcontext) 指定参与聚合的 marker;
MapContext.on('markerClusterCreate', callback) 触发时,通过 [MapContext.addMarkers](/api/location/map?id=createmapcontext) 更新聚合簇的样式 (可选);
[MapContext.removeMarkers](/api/location/map?id=createmapcontext) 移除参与聚合的 marker;
Q
qiang 已提交
141

Q
qiang 已提交
142 143 144 145 146 147 148 149 150 151

**polyline**

指定一系列坐标点,从数组第一项连线至最后一项

|属性|说明|类型|必填|备注|平台差异说明|
|:-|:-|:-|:-|:-|:-|
|points|经纬度数组|Array|是|[{latitude: 0, longitude: 0}]||
|color|线的颜色|String|否|8位十六进制表示,后两位表示alpha值,如:#0000AA||
|width|线的宽度|Number|否|||
study夏羽's avatar
study夏羽 已提交
152 153 154 155 156
|dottedLine|是否虚线|Boolean|否|默认false|App-nvue 2.1.5+、微信小程序、H5、百度小程序、支付宝小程序、京东小程序|
|arrowLine|带箭头的线|Boolean|否|默认false,微信小程序开发者工具暂不支持该属性|App-nvue 2.1.5+、微信小程序、百度小程序、京东小程序|
|arrowIconPath|更换箭头图标|String|否|在arrowLine为true时生效|App-nvue 2.1.5+、微信小程序、百度小程序、京东小程序|
|borderColor|线的边框颜色|String|否||微信小程序、H5、百度小程序、京东小程序|
|borderWidth|线的厚度|Number|否||微信小程序、H5、百度小程序、京东小程序|
Q
qiang 已提交
157
|colorList|彩虹线|Array|false|存在时忽略 color 值|App-nvue 3.1.0+、微信小程序|
Q
qiang 已提交
158
|level|压盖关系,默认为 abovelabels|String|false||微信小程序|
Q
qiang 已提交
159

DCloud-WZF's avatar
DCloud-WZF 已提交
160
 **注意事项**
161

DCloud-WZF's avatar
DCloud-WZF 已提交
162
- App-nvue 当 arrowLine 为 true 时,显示的是带箭头的图片拼接的线 color 值会被忽略,替换箭头图片的方法[参考文档](https://ask.dcloud.net.cn/article/37901)
163

Q
qiang 已提交
164 165 166 167 168 169 170 171 172
**polygon**<br>
指定一系列坐标点,根据 points 坐标数据生成闭合多边形

|属性|说明|类型|必填|备注
|:--|:--|:--|:--|:--|
|points|经纬度数组|array|是|[{latitude: 0, longitude: 0}]
|strokeWidth|描边的宽度|Number|否||
|strokeColor|描边的颜色|String|否|十六进制|
|fillColor|填充颜色|String|否|十六进制|
Q
qiang014 已提交
173
|zIndex|设置多边形 Z 轴数值|Number|否||
Q
qiang 已提交
174
|level|压盖关系,默认为 abovelabels|String|false|微信小程序|
Q
qiang 已提交
175 176 177 178 179 180 181 182 183

**circles**

在地图上显示圆

|属性|说明|类型|必填|备注|
|:-|:-|:-|:-|:-|
|latitude|纬度|Number|是|浮点数,范围 -90 ~ 90|
|longitude|经度|Number|是|浮点数,范围 -180 ~ 180|
Z
zhangchaozheng1 已提交
184 185
|color|描边的颜色|String|否|8位十六进制表示,后两位表示alpha值,如:#000000AA;#00000为十六进制|
|fillColor|填充颜色|String|否|8位十六进制表示,后两位表示alpha值,如:#000000AA;#00000为十六进制|
Q
qiang 已提交
186 187
|radius|半径|Number|是||
|strokeWidth|描边的宽度|Number|否|&nbsp;|
Q
qiang 已提交
188
|level|压盖关系,默认为 abovelabels|String|false|微信小程序|
Q
qiang 已提交
189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213

**controls**

在地图上显示控件,控件不随着地图移动

|属性|说明|类型|必填|备注|
|:-|:-|:-|:-|:-|
|id|控件id|Number|否|在控件点击事件回调会返回此id|
|position|控件在地图的位置|Object|是|控件相对地图位置|
|iconPath|显示的图标|String|是|项目目录下的图片路径,支持相对路径写法,以'/'开头则表示相对项目根目录;也支持临时路径|
|clickable|是否可点击|Boolean|否|默认不可点击|

**position**

|属性|说明|类型|必填|备注|
|:-|:-|:-|:-|:-|
|left|距离地图的左边界多远|Number|否|默认为0|
|top|距离地图的上边界多远|Number|否|默认为0|
|width|控件宽度|Number|否|默认为图片宽度|
|height|控件高度|Number|否|默认为图片高度|

地图组件的经纬度必填,如果不填经纬度则默认值是北京的经纬度。

**示例** [查看示例](https://hellouniapp.dcloud.net.cn/pages/component/map/map)

study夏羽's avatar
study夏羽 已提交
214 215 216
::: preview https://hellouniapp.dcloud.net.cn/pages/component/map/map
> Template
```vue
Q
qiang 已提交
217 218 219 220 221 222 223 224 225 226 227
<template>
	<view>
		<view class="page-body">
			<view class="page-section page-section-gap">
				<map style="width: 100%; height: 300px;" :latitude="latitude" :longitude="longitude" :markers="covers">
				</map>
			</view>
		</view>
	</view>
</template>
```
study夏羽's avatar
study夏羽 已提交
228 229 230
> Script
```vue
<script>
Q
qiang 已提交
231 232 233
export default {
	data() {
		return {
study夏羽's avatar
study夏羽 已提交
234
			id:0, // 使用 marker点击事件 需要填写id
Q
qiang 已提交
235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
			title: 'map',
			latitude: 39.909,
			longitude: 116.39742,
			covers: [{
				latitude: 39.909,
				longitude: 116.39742,
				iconPath: '../../../static/location.png'
			}, {
				latitude: 39.90,
				longitude: 116.39,
				iconPath: '../../../static/location.png'
			}]
		}
	},
	methods: {

	}
}
study夏羽's avatar
study夏羽 已提交
253
</script>
Q
qiang 已提交
254
```
study夏羽's avatar
study夏羽 已提交
255
:::
d-u-a's avatar
d-u-a 已提交
256

d-u-a's avatar
d-u-a 已提交
257
## App平台地图服务商差异
d-u-a's avatar
d-u-a 已提交
258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296

### Map 地图组件

|属性								|说明																		|高德是否支持	|google地图是否支持		|
|:----							|:----																	|:----				|:----								|
|subkey							|个性化地图使用的key											|不支持				|不支持								|
|show-scale					|显示比例尺															|已支持				|不支持								|
|enable-poi					|是否展示 POI 点													|已支持				|不支持								|
|labeltap						|点击label时触发													|已支持				|Android支持iOS不支持	|
|poitap							|点击地图poi点时触发											|已支持				|Android不支持 iOS支持	|

### marker

|属性					|说明																	|高德是否支持	|google地图是否支持		|
|:----				|:----																|:----				|:----								|
|label				|为标记点旁边增加标签										|已支持				|Android支持 iOS不支持	|

### marker 上的气泡 callout

|属性					|说明																			|高德是否支持	|google地图是否支持							|
|:----				|:----																		|:----				|:----													|
|display			|'BYCLICK':点击显示; 'ALWAYS':常显					|已支持				|Android支持iOS只支持 'BYCLICK'	|

### marker 上的自定义气泡 customCallout

|属性		|说明															|高德是否支持	|google地图是否支持							|
|:----	|:----														|:----				|:----													|
|display|'BYCLICK':点击显示; 'ALWAYS':常显	|已支持				|Android支持iOS只支持 'BYCLICK'	|

### polyline

|属性					|说明					|高德是否支持	|google地图是否支持			|
|:----				|:----				|:----				|:----									|
|colorList		|彩虹线				|已支持				|Android不支持 iOS支持		|
|dottedLine		|是否虚线			|已支持				|Android已支持 iOS不支持	|
|arrowLine		|带箭头的线		|已支持				|Android不支持 iOS支持		|
|arrowIconPath|更换箭头图标	|已支持				|Android不支持 iOS支持		|


Q
qiang 已提交
297 298 299 300 301 302 303 304 305 306 307
map 组件相关操作的 JS API:[uni.createMapContext](api/location/map?id=createmapcontext)
nvue map 更换箭头图标格式参考: [https://ask.dcloud.net.cn/article/37901](https://ask.dcloud.net.cn/article/37901)

**注意事项**

- 小程序和app-vue中,`<map>` 组件是由引擎创建的原生组件,它的层级是最高的,不能通过 z-index 控制层级。在`<map>`上绘制内容,可使用组件自带的marker、controls等属性,也可以使用`<cover-view>`组件。App端还可以使用plus.nativeObj.view 或 subNVue 绘制原生内容,[参考](/component/native-component)。另外App端nvue文件不存在层级问题。从微信基础库2.8.3开始,支持map组件的同层渲染,不再有层级问题。
- App端nvue文件的map和小程序拉齐度更高。vue里的map则与plus.map功能一致,和小程序的地图略有差异。**App端使用map推荐使用nvue。**
- App端使用到本地图像的话,打包前需要设置资源为释放模式,在manifest文件内app-plus新增runmode节点,设置值为liberate。
- 在涉及层级问题的小程序中和app-vue中,请勿在 scroll-view、swiper、picker-view、movable-view 中使用 `<map>` 组件。
- 小程序和 app-vue 中,css 动画对 `<map>` 组件无效。
- map 组件使用的经纬度是国测局坐标,调用 uni.getLocation 接口需要指定 type 为 gcj02。
DCloud-WZF's avatar
DCloud-WZF 已提交
308
- `<map>` 组件在不同平台的底层引擎是不同的:微信小程序为腾讯地图;H5为腾讯地图或谷歌地图或高德地图;App、支付宝(中国大陆地区版本)小程序为高德地图;百度小程序、快应用为百度地图。app-vue也可以使用百度地图,在manifest中配置,打包后生效,但app-nvue只支持高德地图。另外选择地图、查看地图位置的API也仅支持高德地图。App端如无特殊必要,建议使用高德地图。
Q
qiang014 已提交
309
- map 组件默认的api是参考微信小程序的,如需要使用plus.map,可以通过`$getAppMap`获取原生地图对象,[详见](/api/location/map)。注意nvue的map组件不是plus.map对象,无法使用`$getAppMap`
Q
qiang 已提交
310 311 312
- H5 端获取定位信息,需要部署在 **https** 服务上,本地预览(localhost)仍然可以使用 http 协议。
- 无GPS模块或GPS无信号的 PC 设备使用 Chrome 浏览器的时候,位置信息是连接谷歌服务器获取的,国内用户可能获取位置信息失败。
- App 端使用地图组件需要**向高德或百度等三方服务商申请SDK资质,获取AppKey,打包时需要在manifest文件中勾选相应模块,在SDK配置中填写Appkey。注意申请包名和打包时的包名需匹配一致,证书信息匹配**。在manifest可视化界面有详细申请指南。
DCloud-WZF's avatar
DCloud-WZF 已提交
313
- H5 端使用地图和定位相关,需要在 [manifest.json](/collocation/manifest?id=h5sdkconfig) 内配置腾讯或谷歌等三方地图服务商申请的秘钥(key)。高德地图需要额外配置 securityJsCode 或 serviceHost,具体参考[高德地图文档](https://lbs.amap.com/api/jsapi-v2/guide/abc/prepare)
Q
qiang 已提交
314 315 316 317 318 319 320 321
- ios nvue Color 不支持 ARGB 十六进制,使用 rgba(r,g,b,a) 代替

##### FAQ

Q:应用中使用了 `<map>` 组件,打包为App时,提示缺少权限模块怎么办?
A:App端原生地图,依赖第三方的 SDK,因此打包移动应用时,需要在manifest中勾选相关的权限并填写 key 信息。详见:[https://ask.dcloud.net.cn/article/29](https://ask.dcloud.net.cn/article/29)

Q:国外应用想使用谷歌地图/google地图怎么办?
d-u-a's avatar
d-u-a 已提交
322
A: App 3.4+ 已支持 Google 地图, App 3.4 以下版本使用下面的方案
d-u-a's avatar
d-u-a 已提交
323 324
 1. 可以在web-view下调用谷歌的web地图
 2. 可以写一个原生插件封装谷歌原生地图,具体参考uni-app插件市场的原生插件开发教程。插件市场已有三方写好的[地图插件](https://ext.dcloud.net.cn/search?q=%E8%B0%B7%E6%AD%8C%E5%9C%B0%E5%9B%BE)
325 326 327 328 329 330 331 332 333

### 三方定位和地图服务收费说明

* 使用三方定位或者地图服务,需向服务提供商(如:高德地图、百度地图、腾讯地图、谷歌地图)申请授权或缴纳费用。
* 申请三方定位或地图服务秘钥时请详细阅读授权和收费说明,并关注服务条款后期的变更。
* 以下是关于部分地图服务商授权和收费的简介,具体以地图服务商官网公布的最新信息为准。
  * 高德地图:商用授权收费,超出配额收费。
  * 百度地图:商用授权收费,超出配额收费。
  * 腾讯地图:商用授权收费,超出配额收费。
Q
qiang 已提交
334
  * 谷歌地图:按量收费,每月赠送一定金额。
335
  * 小程序平台内置地图:无需关心地图服务商,免费使用,无配额限制。