在Qt中添加显示百度地图view
1,通过百度地图API获取html代码
百度地图API网址链接http://api.map.baidu.com/lbsapi/creatmap/
进去后查找武汉大学,获取以武汉大学为中心的地图,随后根据个人设置地图格式或添加标注,最后获取html代码。新建一个html文件map.html,把刚获取的代码粘贴进去。
2,使用webengine在Qt中显示
Qt5改版之后,取消了Qwebview模块,在新版Qt中,若想知道其包含了那些组件并了解其用法,可以在菜单栏帮助-索引里查找。
导入头文件:
#include <QWebEngineView>
#include <QUrl>
在.pro文件里添加库:
QT += webenginewidgets
在WenEngineView里获取并显示百度地图的代码如下:
QWebEngineView *view=new QWebEngineView(parentWidget()); //新建WebEngineView
view->load(QUrl("file:///home/nyh00/build-map1-Desktop_Qt_5_9_2_GCC_64bit-Debug/map.html"));//通过map.html的路径把其load进该view里
view->show();//显示
效果图如下所示:
不弹出新窗口,在主窗口中显示
在主窗口拖入一个GraphicsView,并将它提升为QwebEngineView,如下图所示:
加载并显示的代码如下所示:
ui->graphicsView->load(QUrl("file:///home/nyh00/build-map1-Desktop_Qt_5_9_2_GCC_64bit-Debug/map.html"));
ui->graphicsView->show();
效果图如下:
给获取到的百度地图API添加定位标记
在html的创建地图函数里,添加以下两行代码:
var marker=new BMap.Marker(point); //创建含有定位信息的标注
map.addOverlay(marker); //将标注添加显示在地图上
即:地图显示效果如图所示: