app-geolocation.md 2.1 KB
Newer Older
D
DCloud_LXH 已提交
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

> HBuilderX3.3.0开始独立出“系统定位”模块

### 背景

从2021年初开始,高德、百度、腾讯等地图服务商更新了服务协议、开始实施商业授权机制,要求除公益App外所有使用地图相关功能(包括定位SDK、地图SDK、H5地图等)都需要获取地图服务商的商业授权。重点强调一下,免费应用同样需要商业授权,除非你的应用是公益类App,其它类型App都需要商业授权。
- 高德地图参考:[https://lbs.amap.com/upgrade](https://lbs.amap.com/upgrade)
- 百度地图参考:[https://lbsyun.baidu.com/cashier/auth](https://lbsyun.baidu.com/cashier/auth)
没有取得地图服务商授权的App可能会遇到定位或地图功能被停用、上架应用市场可能提示存在侵权的问题,因此需要向高德、百度等地图开放平台申请商业授权。

为了避免商业授权引起的问题,也可以只使用“系统定位”模块,“系统定位”在功能和机型适配上没有高德、百度等商业定位服务完善,需开发者根据实际情况选择。


### 系统定位
系统定位调用的系统提供的定位服务,不同设备对定位功能支持的情况有所差异

#### iOS平台
由苹果公司提供定位服务,可以获取经纬度信息,也支持解析地址信息。即可以直接返回城市街道信息。

#### Android平台
标准Android平台的定位服务是Google提供的,但需要手机内置GMS服务,连接Google服务器。国产手机大多不支持。

主流国内手机厂商均自行提供了定位服务,但小众品牌可能不支持,主流品牌中较老的机型也不支持。如下Android手机厂商都支持系统定位:
- 华为
- 小米
- Oppo
- Vivo
- 努比亚
- 一加
- 魅族
- 联想
- 金立

在国外通常都是使用Google的GMS提供定位服务。

**注意:Android系统定位模块不支持位置解析服务,只可以获取经纬度信息,不支持解析地址信息。如需要根据经纬度获取城市街道信息,仍然需要请求高德、百度等商业服务**