#include "showplane.h" #include "Map/UGMap.h" #include "qdebug.h" #include "translator.h" ShowPlane::ShowPlane(QObject *parent) : QObject{parent} { } ShowPlane::ShowPlane(QMapControl *pMapControl) { m_pMapControl = pMapControl; addPlaneDyLayer(pMapControl); pMapControl->GetMap()->SetRefreshFlag(false); } ShowPlane::~ShowPlane() { } void ShowPlane::startFly() { addPlaneToDyLayer(); //每500ms刷新一次 m_timer.setInterval(500); connect(&m_timer,&QTimer::timeout,this,&ShowPlane::movePlane); m_timer.start(); m_pDynamicLayer->SetVisible(true); } void ShowPlane::stopFly() { m_timer.stop(); // m_pDynamicLayer->SetVisible(false); m_pMapControl->refreshDynamicLayer(); // m_pDynamicLayer->RemoveAll(); // m_planes.clear(); } //添加飞机 void ShowPlane::addPlane(Plane* plane) { m_planes.append(plane); } //设置刷新时间 void ShowPlane::setRefreshTime(int ms) { m_timer.setInterval(ms); } void ShowPlane::movePlane() { // qDebug()<<"*************************movePlane"; foreach (Plane* plane, m_planes) { qDebug()<<"***************PlaneX:"<getPointX(); plane->setPosition(plane->getPointX()+0.001,plane->getPointY()); } m_pMapControl->refreshDynamicLayer(); // m_pMapControl->Refresh(); } //添加飞机到动态层 void ShowPlane::addPlaneToDyLayer() { foreach (Plane* plane, m_planes) { UGString planeName = Translator::QStr2UGStr(plane->getPlaneName()); m_pDynamicLayer->Add(planeName,plane->getGeometry()); } } void ShowPlane::addPlaneDyLayer(QMapControl* pMapControl) { UGDynamicLayers* pDyLayers = &(pMapControl->GetMap()->m_DynamicLayers); UGString dylayername = _U("Plane"); if(pDyLayers->GetDynamicLayer(dylayername)==NULL) { m_pDynamicLayer = new UGDynamicLayer(dylayername); m_pDynamicLayer->SetLayerName(dylayername); pDyLayers->Add(m_pDynamicLayer); } else { m_pDynamicLayer = pDyLayers->GetDynamicLayer(dylayername); } pMapControl->GetMap()->SetRefreshFlag(false); }