这个地图组件
开发了大半年,全身心的投入,不断解决一个个难题,终极对标产品是奥维地图,他的那个地图组件确实做到了极致,也是qt开发的,至于是不是用到了其他qtlocation模块不知道,他发布的是一个单
文件。至于为什么要用纯qwidget绘制去实现这个组件,前面也有提到过,主要就是性能方面的考虑,无论web怎么吹上天,大量
图形的绘制,还是比不过本地CS架构的程序,有些客户是很古老的电脑配置,甚至一些国产机器匹配的是Qt4.8这种古老的版本,再或者需要
编译成wasm或者移动端运行,纯qwidget的方案不要太好,兼容性最强大,唯一的缺点就是
没有一些动画效果,需要自己用代码实现,而如果是
qml则内置了这些效果,直接几行代码就能搞定整体地图移动动画效果,还一个就是qml大部分走的GPU绘制,占用CPU这块相对来说低一些,而纯qpainter绘制地图,由于是一个小的瓦片地图组成的,所以在每收到一个小瓦片的时候,就需要填充绘制一次,导致频繁瞬间不断的拖动地图,在不断的
下载和加载地图,会占用一定的CPU,个人实测在7%左右,这个是瞬间造成的,不是一直这个占用,而且有内存缓存
图片策略,在下次加载到这个区域的瓦片时候,如果内存存在该瓦片,则先从内存取出来,速度极快,可能就一个中断。
这个组件之前很多人问过有没有,比如需要在很差的配置的电脑上运行,不能用web浏览器方案,有些需要在手机移动端运行,甚至有个人还要在wasm网页上运行,当初问的时候也没有备注登记,现在搞出来了,人又找不到了,也不知道是谁,哎,事情往往就是这样,全靠兴趣支撑,哎心好累。



