随笔分类 - Qt/C++地图综合应用
摘要:一、前言说明 监控系统中一般有很多的摄像头点位,除了在平面图中展示位置以外,有些工地和集团,在集中管理的地方,还希望在电子地图中展示,电子地图可以缩放和拖动,切换设备点自动放大高亮,地图自动移动到设备居中的位置,双击设备可以预览实时画面。设备的经纬度信息,在添加设备的时候有个默认的位置,真实的位置需
阅读全文
摘要:一、前言说明 做地图开发会遇到一个常规需求,就是获取当前经纬度对应的海拔高度,也叫做高程值,很遗憾各大地图厂商都未提供接口获取,可能是有明文规定,不能地图中提供对应的海拔高度值,于是需要另想他法,尽管谷歌地图在线的api接口是提供了海拔高度值,但是懂得都懂,国内哪里还能用谷歌地图?完全用不了啊,就算
阅读全文
摘要:一、前言说明 覆盖物一般包括标准点marker、折线polyline、多边形polygon、矩形rectangle、圆形circle等,这些功能在所有地图中都是支持的,有些地图对应的矩形使用多边形来实现,因为矩形也是多边形的一种。除了上述5种基础的覆盖物以外,还有两种高级的覆盖物,那就是点聚合和海量
阅读全文
摘要:一、前言说明 地图测距在地图组件中属于一个比较小众的功能,但是又不得不提供,有时候用户希望直接在地图上选点,测算距离,尤其是在一些军事领域用的比较多,测距功能提炼出来的共性就是,每一段都有距离,最后鼠标右键或者双击结束测距,然后发个信号传过来总的距离。一般地图厂家也都提供了对应的事件,比如百度地图的
阅读全文
摘要:一、前言说明 做地图开发会遇到一个常规需求,就是获取当前经纬度对应的海拔高度,也叫做高程值,很遗憾各大地图厂商都未提供接口获取,可能是有明文规定,不能地图中提供对应的海拔高度值,于是需要另想他法,尽管谷歌地图在线的api接口是提供了海拔高度值,但是懂得都懂,国内哪里还能用谷歌地图?完全用不了啊,就算
阅读全文
摘要:一、前言说明 在地图应用中,有很多时候是需要断网环境中离线使用的,一般会采用两种做法,一种是只下载好离线瓦片地图,然后根据不同的缩放和经纬度坐标绘制瓦片。这种方式优点是任何地图都支持,只需要拿到瓦片即可,缺点是其他的接口都需要自己处理,比如覆盖物的绘制,工作量巨大,尽管Qt的qml部分提供了loca
阅读全文
摘要:一、前言说明 已经有了最基础的接口用来添加覆盖物,而且还有通过进入覆盖物模式动态添加覆盖物的功能,为什么还要来个高级绘图?因为又有新的需求,给钱就搞,一点底线都没有。无论哪个地图厂家,提供的接口都是没有唯一标识参数的,也就类似于学号,这就是需要自己主动定一个属性用来存储唯一标识,这样方便后面删除和修
阅读全文
摘要:一、前言说明 在其他地图组件中,标注点marker都是可以设置旋转角度的,这个功能其实非常实用,比如飞机移动轨迹,就是需要旋转飞机头飞行,轮船轨迹移动也是,百度地图和腾讯地图是通过调用setRotation函数设置,高德地图是setAngle,唯独天地图没有提供对应接口,找遍了文档和源码,也没有找到
阅读全文
摘要:一、前言说明 无论哪一家的地图,都提供了调用函数绘制各种覆盖物,但是有时候的场景是希望进入添加覆盖物模式,然后每次在地图上按下都自动生成对应的覆盖物比如圆形,这样就不需要用户提前知道经纬度坐标等参数,而是让用户自己在地图上拾取即可,这样灵活性就极大的提高了。百度地图和腾讯地图是提供了绘图工具栏来实现
阅读全文
摘要:一、前言说明 搞Qt地图开发这块,随着研究的深入,用户的需求变化,最近又需要在手机上运行,由于本地图组件依赖浏览器控件,而手机安卓上的Qt并没有带qwebengine控件,怎么办呢,不断的努力验证下,发现Qt安卓上提供了webview控件可以加载网页,而webview在安卓上只能用qml,根据官方的
阅读全文
摘要:一、前言说明 地图雷达扫描的需求场景也不少,很多人的做法是直接搞个覆盖层widget,在widget上绘制雷达,优缺点很明显,优点是性能高,毕竟直接在widget上绘制性能明显比js中绘制要高,缺点是要么动态计算经纬度坐标转屏幕坐标来实现跟随,要么固定的通过改变绘制的范围内容来跟随,但是总归使用场景
阅读全文
摘要:一、前言说明 在使用百度地图的路书功能中,并没有提供移动的信号以及移动结束的信号,但是很多时候都期望拿到移动的哪里了以及移动结束的信号,以便做出对应的处理,比如结束后需要触发一些对应的操作。经过搜索发现很多人都有这个需求,需要在js文件中加上一点代码才行,也就是在start开始的时候传入两个回调函数
阅读全文
摘要:一、前言说明 地图组件为了方便用户的操作,一般会满足各种需求场景,比如用鼠标拖曳地图,实体键盘按键上下左右移动,鼠标滚轮缩放地图大小,双击放大地图,这些常规的操作可以极大的方便用户操作,问题是,有时候又是需要禁用某些功能,不然会引起一些误操作,比如双击放大功能,如果不禁用,在某些场景要求双击标注点做
阅读全文
摘要:一、前言说明 在展示地图的时候,有些常规的操作,比如调整地图的缩放级别,切换到卫星图等,希望能够在地图上直接操作实现,于是就有了一堆地图控件,可以根据自己的需求动态的添加和删除,这样就更直接更快捷,而不是通过函数去设置。几乎每个地图厂家都提供了类似的控件,尽管命名可能有些差别,常见的地图控件有地图类
阅读全文
摘要:一、前言说明 最近花了大半年时间,专门研究这个地图组件,几乎把各种地图的官网的手册翻了个遍,亲自写代码验证了一遍,各种API函数接口和功能全部实战一遍,然后从中提取共性,做出了基类,以及通用函数类,子类再对该地图特殊功能进行单独的处理。那么问题来了,这些地图各自有哪些优缺点呢?面对具体的实际需求应该
阅读全文
摘要:一、前言说明 网上关于如何趴天地图离线api文件的文章,只有少量的两三篇,而且几乎没有说全和说对,搞得评论也是一片懵逼,这里不行那你不行,思路可以借鉴就是。索性花了点时间,自己研究了如何从官网一步步趴下来js文件,最终所有离线能使用的功能全部搞定,也根本不会有http等访问的情况出现,彻底离线断网使
阅读全文
摘要:一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主
阅读全文
摘要:一、前言说明 地址和经纬度坐标转换的功能必须在线使用,一般用在导航需求上,比如用户输入起点地址和终点地址,查询路线后,显示对应的路线,而实际上各大地图厂家默认支持的是给定经纬度坐标来查询(百度地图支持传入地址),但是你让用户输入经纬度坐标是不可能的,他肯定不可能知道怎么去拿到这个坐标,所以一般都是要
阅读全文
摘要:一、前言说明 标注点在地图开发中是最常见的应用场景之一,比如在地图上需要显示设备的位置,基本上都是添加标注点,指定图片和尺寸已经经纬度坐标位置。这个功能在每种地图内核中都提供的,这个并没有任何难点,在这个功能点上最大难题或者说是设计细节就是,标注点该如何对齐,比如水滴形状的图标一般是底部居中对齐更美
阅读全文
摘要:一、前言说明 为什么需要地球坐标纠偏这个功能,因为国家安全需要,不允许使用国际标准的地球坐标系,也并不是咱们这边这样,很多国家都是这样处理的,就是本国的地图经纬度坐标都是按照国家标准来的,所以就需要一个转换。国内主要有三种坐标系,国际标准用的地球坐标系WGS-84,国家标准用的火星坐标系GCJ-02
阅读全文