最近翻看进年前写了一篇关于百度离线地图的博客:Qt加载百度离线地图,发现存在很多问题,比如不能加载折线等图形覆盖物;只支持QtWebKit,不支持QtWebEngine。
之前做项目需要在百度离线地图上绘制Mesh拓扑图,必须添加折线覆盖物,使用的是百度离线地图API V2.1,满足需求。除了添加或删除自定义覆盖物外,还支持添加自定义控件,打开或关闭信息提示窗口等等。
一.效果
默认19级,以北京动物园为中心。右侧的工具栏和底部的位置信息都是自定义控件。
二.原理
1.制作百度离线地图API
原理就是将在线的JS API下载到本地,屏蔽掉验证,并将API中引用的资源替换为本地资源,包括将在线瓦片替换为本地离线瓦片。
详见:百度离线地图JS API V3.0
2.下载瓦片地图
百度地图是由一张张正方形瓦片组成,在拖动地图时,只加载可视范围内的瓦片。如下图所示,每个方格代表一个瓦片,这样就可以通过访问百度瓦片地图服务器下载瓦片地图。网上有很多下载工具,比如“全能电子地图