# QT三维地图插件 **Repository Path**: bobjack/map-qt ## Basic Information - **Project Name**: QT三维地图插件 - **Description**: 完全免费、无需注册 主要功能:三维离线地图、二维离线地图、航迹平滑、星历外推 1.支持海量数据绘制,实测百万级点位绘制。 2.支持在线地图、离线地图、压缩地图数据,易于部署。 3.支持二次开发,无偿提供SDK开发库,接口清晰易用。 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2024-11-21 - **Last Updated**: 2024-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QT三维地图插件 #### 介绍 插件支持仿真在线地图、在线高程数据以及本地瓦片地图、本地压缩地图资源,并支持多图层切换; 支持各种图形绘制(点、线、面),支持目标、卫星动画仿真; 插件支持Windows、Linux X86、Linux ARM;注:当前发布版本仅支持QT 5.12.0 + MSVC 2017,如有其他版本需求请联系 免费提供二次开发SDK,并提供简单Demo; 插件经多个大型项目论证,可放心使用; 完全免费、无需注册、无任何限制;(包括编译文件均上传,打包下载文件会略大) 交流群:906146817 #### 用途 1.支持海量数据绘制,实测百万级点位绘制。 2.支持在线地图、离线地图、压缩地图数据,易于部署。 3.支持二次开发,无偿提供SDK开发库,接口清晰易用。 map-qt #### 插件说明 1. 多种图源支持 支持同时配置多个图源,并可对当前图源进行选择切换。 - Goole卫星图,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/1.png) - ArcGIS卫星图,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/2.png) - ArcGIS海洋图,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/3.png) - Google注记,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/4.png) - ArcGIS卫星图+Goole注记,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/5.png) - 卫星地图+高程数据,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/13.png) 2. 图形绘制 支持点、线、矩形、圆、扇形、多边形等绘制,插件提供区域选择计算(自动计算选择区域目标),目标点位可选择多种形状(圆、菱形、正方形、三角形)。 - 点位框选,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/6-1.gif) ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/6-2.gif) - 海量数据绘制,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/7.png) - 航迹绘制,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/8.png) - 航迹平滑,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/9.png) - 坐标格栅,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/15.gif) - 绘制模型 ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/16.png) 3. 仿真 插件支持针对目标、卫星的动画仿真。可使用图片或三维模型进行目标绘制,并提供动画播放控制插件。 - 目标仿真,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/10.png) - 卫星仿真,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/11.png) - 动画效果,如下图所示: ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/14.gif) - 动画播放控制插件,如下图所示: 播放控制可进行倍速播放、数据区域标志、播放进度等显示控制。 ![输入图片说明](https://gitee.com/pssddddd/map-qt/raw/master/Other/12.png) 4. 初始化 /******************** 地图信息 ********************/ QString satelliteMapPath = QApplication::applicationDirPath() + "/MapServer/satellite.dat"; //地图数据文件 QString tileMapPath = QApplication::applicationDirPath() + "/MapServer/tiles"; //地图瓦图文件 QList mapPathList; //添加离线压缩地图资源示例 MapResourceModel mapType1; mapType1.ID = 1; mapType1.MapType = 0; mapType1.LayerType = 0; mapType1.Name = "离线压缩地图"; mapType1.Path = satelliteMapPath; mapType1.Select = true; mapPathList.append(mapType1); //添加在线地图示例 MapResourceModel mapType2; mapType2.ID = 2; mapType2.MapType = 2; mapType2.LayerType = 0; mapType2.Name = "在线地图"; mapType2.Path = "https://webst01.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}"; mapPathList.append(mapType2); //添加离线瓦片地图示例 MapResourceModel mapType3; mapType3.ID = 3; mapType3.MapType = 1; mapType3.LayerType = 0; mapType3.Name = "离线瓦片地图"; mapType3.Path = tileMapPath; mapType3.PictureType = "jpeg"; mapPathList.append(mapType3); //添加在线注记数据示例 MapResourceModel mapType4; mapType4.ID = 4; mapType4.MapType = 2; mapType4.LayerType = 1; mapType4.Name = "在线注记"; mapType4.Path = "http://webst02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scale=1&style=8"; mapPathList.append(mapType4); /******************** 地图初始化 ********************/ Map3DWidget *map3D = new Map3DWidget(); /** * 5050 地图资源访问端口 * mapPathList 地图信息集合 * 1 以三维方式启动(0表示以二维方式启动) * true 是否对地图资源进行发布(系统中如果已经发布过了则不需要再次发布) */ map3D->InitMapr(5050, mapPathList, 1, true);//参数说明参考头文件描述 /******************** 常用信号槽 ********************/ connect(map3D, &Map3DWidget::ClickLeftEvent, this, &MainWindow::MapClickLeft); //鼠标左键点击 connect(map3D, &Map3DWidget::ClickRightEvent, this, &MainWindow::MapClickRight); //鼠标右键点击 connect(map3D, &Map3DWidget::LoadCompleteEvent, this, &MainWindow::LoadComplete); //鼠标右键点击 connect(map3D, &Map3DWidget::SelectEvent, this, &MainWindow::MapSelect); //地图选择 connect(map3D, &Map3DWidget::PointCompleteEvent, this, &MainWindow::PointComplete); //手动点绘制完成 connect(map3D, &Map3DWidget::RectCompleteEvent, this, &MainWindow::RectComplete); //手动矩形绘制完成 connect(map3D, &Map3DWidget::EllipseCompleteEvent, this, &MainWindow::EllipseComplete); //手动绘制圆完成 connect(map3D, &Map3DWidget::OperatoinChange, this, &MainWindow::MapOperatoinChange); //地图操作改变 /******************** 常用方法 ********************/ //参考头文件map3dwidget.h #### 更新历史 - 2024-11-21日更新 增加经纬度显示小数位数控制。 - 2024-11-15日更新 修复单色线段绘制失败问题。 - 2024-11-13日更新 调整高程数据加载方式,同时支持多种格式就行读取加载。 - 2024-11-11日更新 修复增加图片、模型时缩放比例不正确显示异常问题。 - 2024-11-10日更新 调整图片、模型等资源添加方式。 - 2024-11-07日更新 地图初始化接口改变,增加初始化启动二维或三维控制。