Qt调用mapx绘制图形,删除绘制的图形后,地图上的图形不见了,但内存增加后无法释放
白日_焰火 2020-05-07 03:26:16 这是新建图层:
CMapXLayer *trail = layers->CreateLayer("Plane");
delete trail;
这是绘制直线:
CMapXLayer *trail = layers->Item("Plane");//error
CMapXFeature *tmp1;
CMapXFeature *tmp2;
CMapXFeature *drawline;
CMapXFeature *final;
CMapXPoint *pt1,*pt2;
CMapXStyle *style;
trail->BeginAccess(miAccessReadWrite);
tmp1 = feaFactory->CreateSymbol();
tmp2 = feaFactory->CreateSymbol();
pt1 = tmp1->Point();
pt2 = tmp2->Point();
QPointF point1 = GetLastPoint(icao);//获取上一个点的经纬度
pt1->Set(point1.x(),point1.y());
pt2->Set(lon,lat);
//// Savetrail = QPointF(lon,lat);
drawline = feaFactory->CreateArc(pt1->asVariant().value<IDispatch*>(),
pt2->asVariant().value<IDispatch*>(),
90,0,100);
style = drawline->Style();
style->SetLineColor(QColor(255,0,0));
style->SetLineWidth(2);
trail->SetEditable(true);
final = trail->AddFeature(drawline->asVariant().value<IDispatch*>());
final->Update();
trail->EndAccess();
//qDebug()<<"DRAW_PLANE_TRAIL"<<map->Layers()->Count();
delete trail;delete tmp1;delete tmp2;
delete drawline;delete final;delete pt1;
delete pt2;delete style;
这是删除图层部分:
layers->Remove("Plane");