map.md 4.2 KB
Newer Older
1 2 3 4
## map

<!-- UTSCOMJSON.map.description -->

DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
5 6
地图由三方专业地图厂商提供SDK。在App和Web中,使用三方SDK需在[manifest](../collocation/manifest.md)中进行配置。

7 8
<!-- UTSCOMJSON.map.compatibility -->

DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
9 10 11 12 13 14
不同图商在不同平台的兼容性
|图商|App|Web|
|:-:|:-:|:-:|
|腾讯|4.31+|√|
|高德|x|√|
|Google|x|√|
W
wanganxp 已提交
15

DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
16 17 18
除了内置支持的图商,还可以在插件市场寻找更多地图解决方案:
1. [插件市场的三方地图插件](https://ext.dcloud.net.cn/search?q=%E5%9C%B0%E5%9B%BE&orderBy=Relevance&uni-appx=1)
2. 使用web-view中的地图
W
wanganxp 已提交
19

20 21 22 23 24 25 26 27
<!-- UTSCOMJSON.map.attribute -->

<!-- UTSCOMJSON.map.event -->

<!-- UTSCOMJSON.map.component_type -->

<!-- UTSCOMJSON.map.children -->

taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
28
::: warning 注意事项
29
- App平台 `layer-style` 属性用于设置个性化地图样式,可用于适配实现地图的暗黑模式。使用前需在腾讯位置服务后台 “个性化样式” 的 “[我的样式](https://lbs.qq.com/dev/console/custom/mapStyle)” 中创建,并在 “[样式应用](https://lbs.qq.com/dev/console/custom/apply)” 中将应的Key绑定样式,`layer-style` 的值为绑定样式的序号。更多信息可参考腾讯地图官方文档[Android平台个性化地图](https://lbs.qq.com/mobile/androidMapSDK/developerGuide/personalized)[iOS平台个性化地图](https://lbs.qq.com/mobile/iOSMapSDK/mapGuide/mapStyle)
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
30 31 32 33 34
- App平台暂未支持
    - Marker的callout、customCallout、label属性
    - 点聚合
:::

35 36
<!-- UTSCOMJSON.map.example -->

37 38
## 三方地图SDK  

taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
39 40
### 腾讯地图

41 42 43 44 45 46 47 48 49 50 51 52
#### app-android平台仓储依赖
- com.tencent.map:tencent-map-vector-sdk:5.6.0
- com.tencent.map:sdk-utilities:1.0.9
- com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.5.4.3
- com.github.bumptech.glide:glide:4.16.0

#### app-ios平台Cocoapods依赖
- {"name":"Tencent-MapSDK", "version": "5.1.0"}
- {"name": "Tencent-MapVisualPlugin", "version": "3.1.0"}
- {"name": "Tencent-MapFoundation", "version": ">=3.3.0"}
- {"name": "Tencent-MapUtils", "version": "1.2.3"}

taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
53
#### 审图号
taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
54 55 56

GS粤(2023)1171号

taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
57
#### Map Key配置
58

taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
59
app平台目前还没有可视化界面,采用摇树机制,即调用地图相关api才会把地图组件编译到基座中,Map Key配置方式如下:
60 61 62 63

- iOS平台:需要在info.plist中配置对应的Key,参考[iOS平台配置腾讯地图Key](../collocation/manifest-modules.md#uni-map-tencent-ios-key)
- Android平台:需要在AndroidManifest.xml配置Key, 参考[Andoird平台配置腾讯地图Key](../collocation/manifest-modules.md#uni-map-tencent-android-key)

taohebin@dcloud.io's avatar
taohebin@dcloud.io 已提交
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
### 地图扩展

所谓地图扩展就是可以通过获取map组件的形式扩展地图功能,暂时只有Android支持,步骤如下:

1. 新建一个uts插件,配置依赖腾讯地图SDK 
2. 在uvue页面调用`uni.getElementById()`获取组件对象`UniElement`,将`UniElement`对象传入uts插件
3. 在uts插件中通过`UniElement``getAndroidView`获取原生地图View,使用原生地图view与地图SDK提供的API开发扩展功能,例:

```ts
import { CameraUpdateFactory } from "com.tencent.tencentmap.mapsdk.maps"
import { MapView } from "com.tencent.tencentmap.mapsdk.maps"
export function setScale(element : UniElement, scale : number) : void {
	(element?.getAndroidView() as MapView)?.map?.moveCamera(CameraUpdateFactory.zoomTo(scale.toFloat()));
}
```

80

DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
81 82 83
## Tips
- 在App和Web平台,没有在manifest中配置好图商的sdk key信息,将无法使用地图。某些图商的sdk key,区分Web、Android、iOS,注意别配混了。有些sdk key,会绑定校验web的域名或app的包名和签名证书摘要,都要匹配准确才能使用地图。
- 谷歌地图仅支持 `wgs84` 坐标,中国的各个地图仅支持 `gcj02` 坐标,注意使用定位API获取的位置,需与map组件的图商需求一致,把 wgs84 的坐标显示在中国地图上会导致偏移。
DCloud-yyl's avatar
DCloud-yyl 已提交
84
- 地图是商业服务,需购买商业地图授权(5万/年)。如果没有授权,不但使用会被限频,还会被某些应用商店拒绝上架。DCloud与地图厂商谈判,给开发者提供了优惠,点此详询 [地图商业授权咨询](https://ask.dcloud.net.cn/explore/map/)
DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
85

86 87
<!-- UTSCOMJSON.map.reference -->