QGC中地图

QGCLocationPlugin

定义了QGCLocationPlugin.pri文件,这个文件包含QtLocationPlugin文件夹里面的头文件和源文件

在main.cc文件中,include “QGCMapEngine.h”,这个头文件与Qt项目中总体头文件不在一个目录中,但是之所以能直接包含,就是因为在.pro文件中include QGCLocationPlugin.pri。

main.cc中getQGCMapEngine()

在main.cc中使用了这个getQGCMapEngine()->init(),不是对象或者类调用,经过追代码发现是在QGC。

extern QGCMapEngine * getQGCMapEngine();
extern void destroyMapEngine(); 

1️⃣当extern 与C一起使用,如extern “C” void func(int a,int b);则告诉编译器在编译func这个函数名字的时候;
2️⃣当extern 不与C一起使用的时候,如在头文件extern int g_int,它的作用就是声明函数或者全局变量,其声明的函数和变量可以在本模块或者其他模块中使用。是声明而不是定义。
QGCMapEngine.cpp中定义了
kMapTypes[]={}
kMapboxTypes[]={}
kEsriTypes[]={}

getQGCMapEngine()
    static QGCMapEngine *kMapEngine=null;
    QGCMapEngine *getQGCMapEngine(){
        if(!kMapEngine)
            kMapEngine=new QGCMapEngine();
            return kMapEngine;
    }
destroyMapEngine()
    void destroyMapEngine()(){
        if(kMapEngine)
            kMapEngine=null;
    }

地图的表示

    struct stQGeoTileCacheQGCMapTypes{
        const char * name;
        UrlFactory::Maptype type;
    }

QGCMapEngine

    //构造方法中给_urlFactory赋值
    QGCMapEngine::QGCMapEngine():_urlFactory(new UrlFactory())

    _userAgent()
    ,_maxDiskCache(0)
    ,_prunning(false)
    ,_cacheWasReset(false)
    ,_isInternetActive(false)

    //注册
    qRegisterMetaType
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值