千家信息网

Qt动态如何添加

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"Qt动态如何添加",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt动态如何添加"吧!一、前言在添加设备点或者区域形状的时候,会考虑是直接
千家信息网最后更新 2026年11月02日Qt动态如何添加

本篇内容主要讲解"Qt动态如何添加",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Qt动态如何添加"吧!

一、前言

在添加设备点或者区域形状的时候,会考虑是直接静态的方式写入到网页中加载,还是动态js函数异步加载的方式,这个需要根据现场的实际需求来,如果只需要一次加载的话建议静态即可,如果运行期间还需要动态添加的话就采用动态的js函数交互的方法,绝大部分场景都是动态添加,毕竟这个是异步执行的,而且比较灵活,静态的方式写入到网页中加载开起来比较傻,数据都在网页中可以看到了,没有什么保密性可言,在前面两篇文章做行政区划和点聚合的时候,也是两种方法都支持,具体现场怎么方便怎么来。

动态添加的话,相当于要把官网那些demo,都做成js函数调用的形式,官网的那些demo主要都是以静态写死的方式作为演示的,为了更直观更容易理解,如果是Qt程序员或者c++的程序,需要花一丢丢时间才能学会如何将其封装成js函数调用,毕竟在js中没有数据类型的概念,统一都是var,相当于Qt中的QVariant类型,所谓万物皆var,数组和数组对象直接用[]搞定,着实相当方便。

二、功能特点

  1. 同时支持在线地图和离线地图两种模式。

  2. 同时支持webkit内核、webengine内核、IE内核。

  3. 支持设置多个标注点,信息包括名称、地址、经纬度。

  4. 可设置地图是否可单击、拖动、鼠标滚轮缩放。

  5. 可设置协议版本、秘钥、主题样式、中心坐标、中心城市、地理编码位置等。

  6. 可设置地图缩放比例和级别,缩略图、比例尺、路况信息等控件的可见。

  7. 支持地图交互,比如鼠标按下获取对应位置的经纬度。

  8. 支持查询路线,可设置起点位置、终点位置、路线模式、路线方式、路线方案(最少时间、最少换乘、最少步行、不乘地铁、最短距离、避开高速)。

  9. 可显示点线面工具,可直接在地图上划线、点、矩形、圆形等。

  10. 可设置行政区划,指定某个城市区域绘制图层,在线地图自动输出行政区划边界点集合到js文件给离线地图使用。

  11. 可静态或者动态添加多个覆盖物。支持点、折线、多边形、矩形、圆形、弧线、点聚合等。

  12. 函数接口友好和统一,使用简单方便,就一个类。

  13. 支持js动态交互添加点、删除点、清空点、重置点,不需要刷新页面。

  14. 支持任意Qt版本、任意系统、任意编译器。

三、效果图

四、相关代码

void MapBaiDu::addPolyline(QStringList &list){    //覆盖物通用属性,包括颜色线条粗细等,可以自行更改    QString property = getOverlayProperty();    //动态添加折线    list << QString("  function addPolyline(points) {");    list << QString("    var pts = getPoints(points);");    list << QString("    var polyline = new BMap.Polyline(pts, %1);").arg(property);    list << QString("    map.addOverlay(polyline);");    list << QString("  }");}void MapBaiDu::addPolygon(QStringList &list){    //覆盖物通用属性,包括颜色线条粗细等,可以自行更改    QString property = getOverlayProperty();    //动态添加多边形    list << QString("  function addPolygon(points) {");    list << QString("    var pts = getPoints(points);");    list << QString("    var polygon = new BMap.Polygon(pts, %1);").arg(property);    list << QString("    map.addOverlay(polygon);");    list << QString("  }");}void MapBaiDu::addRectangle(QStringList &list){    //覆盖物通用属性,包括颜色线条粗细等,可以自行更改    QString property = getOverlayProperty();    //动态添加矩形    list << QString("  function addRectangle(points) {");    list << QString("    var listPoint = points.split(\"|\");");    list << QString("    if (listPoint.length != 2) {");    list << QString("      return;");    list << QString("    }");    //将两个坐标拆分成四个点    list << QString("    var list1 = listPoint[0].split(\",\");");    list << QString("    var list2 = listPoint[1].split(\",\");");    list << QString("    var ptStart = new BMap.Point(list1[0], list1[1]);");    list << QString("    var ptEnd = new BMap.Point(list2[0], list2[1]);");    list << QString("    var pt1 = new BMap.Point(ptStart.lng, ptStart.lat);");    list << QString("    var pt2 = new BMap.Point(ptEnd.lng, ptStart.lat);");    list << QString("    var pt3 = new BMap.Point(ptEnd.lng, ptEnd.lat);");    list << QString("    var pt4 = new BMap.Point(ptStart.lng, ptEnd.lat);");    list << QString("    var rectangle = new BMap.Polygon([pt1,pt2,pt3,pt4], %1);").arg(property);    list << QString("    map.addOverlay(rectangle);");    list << QString("  }");}void MapBaiDu::addCircle(QStringList &list){    //覆盖物通用属性,包括颜色线条粗细等,可以自行更改    QString property = getOverlayProperty();    //动态添加圆形    list << QString("  function addCircle(points, radius) {");    list << QString("    var listPoint = points.split(\"|\");");    list << QString("    var list = listPoint[0].split(\",\");");    list << QString("    var ptCenter = new BMap.Point(list[0], list[1]);");    list << QString("    var circle = new BMap.Circle(ptCenter, radius, %1);").arg(property);    list << QString("    map.addOverlay(circle);");    list << QString("  }");}

到此,相信大家对"Qt动态如何添加"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

动态 支持 地图 函数 方式 覆盖物 静态 可设 位置 属性 粗细 线条 路线 颜色 内核 圆形 方法 矩形 网页 行政区划 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海挚品互联网科技有限公司 深圳市人人互联网科技有限公司 亿人帮互联网科技有限公司 科技互联网产品 中国互联网科技股 朗新科技与工业互联网 科技制造互联网公司 互联网科技股票 成都互联网科技公司 善班互联网科技有限公司 安控科技rtu产品工业互联网 互联网保险科技创业 996高科技互联网公司 翼展科技 首家互联网医院 山东有哪些互联网科技公司 广州互联网高科技取餐柜 广东鹅鹅鹅互联网科技有限公司 互联网科技企业商标注意事项 张家口科技产业互联网平台 小牛互联网科技有限公司地址 金融科技创新监管互联网金融 网络科技有限互联网 智网互联网科技 海南购全球互联网科技 华脉科技工业互联网产品 互联网系的金融科技公司 东莞新华互联网科技学校 江苏苏星互联网科技有限公司 广州三三互联网科技有限公司 安徽九吞吴互联网科技有限公司
0