首页| 论坛| 消息

标题:Qt/C++如何选择使用哪一种地图内核/不同地图的优缺点/百度高德腾讯地图/天地图/谷歌地图
作者:liudianwu
日期:2024-09-29 08:22
内容:

## 一、前言说明
最近花了大半年时间,专门研究这个地图组件,几乎把各种地图的官网的手册翻了个遍,亲自写代码验证了一遍,各种API函数接口和功能全部实战一遍,然后从中提取共性,做出了基类,以及通用函数类,子类再对该地图特殊功能进行单独的处理。那么问题来了,这些地图各自有哪些优缺点呢?面对具体的实际需求应该怎么选?
1. 不同的地图内核有不同的优缺点,一般国内使用比较多的是百度地图、高德地图、天地图三种,谷歌由于需要翻墙才能使用,导致国内用户数很低。综合使用对比下来看,高德地图在api接口和文档示例方面最丰富的,应用场景也最全;百度地图在周边附近搜索方面最详细;天地图在地图精度和完整性方面最好。
2. 高德地图和谷歌地图,在国内都是采用国家标准的GCJ-02坐标系(也叫火星坐标系),这个标准是在全球标准WGS-84坐标系(也叫地球坐标系,GPS用)基础上加密的。天地图采用的是CGCS2000坐标系(也叫大地坐标系),和WGS-84坐标系(也叫地球坐标系)几乎无偏差,一般GPS设备和谷歌国际地图使用。 百度地图用的是BD-09坐标系,是在国家标准坐标系上又加密的。一般建议用国家标准的GCJ-02坐标系。
3. **常规应用场景建议用高德地图,无人机相关场景以及测绘测量行业建议用天地图,对周边生活搜索要求高的场景建议用百度地图,海外地图场景建议用谷歌地图。天地图对浏览器的兼容性最好,而且地图切换流畅度最好。天地图的卫星图最全,精度最高。而且天地图坐标系可以和地球坐标系完美兼容,无偏差。**
4. 高德地图在不同版本之间的兼容性最好,绝大部分接口通用。百度地图对应的webgl版本主要就是将原来的对象BMap改成BMapGL。天地图是旧版本TMap改成T.Map。
5. 总体感觉天地图的API结构和命名方面是借鉴的百度地图的,腾讯地图借鉴的谷歌地图的,极大的雷同,这样也好,方便程序员。
6. 无论是百度地图还是高德地图或者天地图等,都多多少少存在bug,比如不少的情况是,通过new的时候构造函数传参数是可以的,而调用setxxx接口去设置确失败,可能对应接口还没测试好。所以在使用这些类的时候,尽量用构造函数传参数,就算不填实际性的内容,也要传个空数据,避免解析失败而导致后续的功能全无。
## 二、功能特点
### 2.1 地图功能
1. 支持多种地图内核,默认采用百度地图,可选高德地图、天地图、腾讯地图、谷歌地图等。
2. 同时支持在线地图和离线地图两种模式,离线地图方便在不联网的场景中使用。
3. 支持各种地图控 ..

回复 发表
主题 版块