在main.cc中,
getMapEngine()->init();
这个getMapEngine()是QGCMapEngine.h中,extern声明的函数。
//QGCMapEngine.h中
QGCMapTask在QGCMapEngineData.h中定义
class QGCMapTask:public QObject{
Q_QBJECT
public :
enum TaskType{
taskInit,
taskTestInternet,
taskCacheTile,
...
...
taskImport
}
QGCMapTask(TaskType type):_type(type){}
virtual ~QGCMapTask(){}
virtual TaskType type(){return _type}
}
...
class QGCTestInternetTask:public QGCMapTask{
Q_OBJECT
}
在getMapengine()的构造方法中
qRegisterMetaType<QGCMapTask::TaskType>();
qRegisterMetaType<QGCTile>();
qRegisterMetaType<QList<QGCTile*>>();
connect(&_worker,&QGCCacheWorker::updateTotals,this,&QGCMapEngine::_updateTools);
connect(&_worker,&QGCCacheWorker::internetStatus,this,&QGCMapEngine::_internetStatus);