首页 / 浏览问题 / 组件GIS / 问题详情
组件态势推演
56EXP 2019年11月19日
我在idestktop上使用态势推演管理器新建了一个动画组,并保持为test.xml文件,我现在要在iobjects  c++下实现打开这个xml文件并实现在地图上把xml中的动画组显示出来

1个回答

您好,UGAnimatoinManger::GetAnimationFromXML(filePath)可以加载。
694EXP 2019年11月19日
你好!  

我用了下面代码

 UGAnimationManager* pAnimationManager = UGAnimationManager::Instance();
 UGbool  ps=pAnimationManager->GetAnimationFromXML(strpath);
UGString animationGroup = _U("测试动画组");
    UGAnimationGroup* pGroup = pAnimationManager->GetGroupByName(animationGroup);

    if (pGroup == NULL)
    {
        pGroup = pAnimationManager->AddAnimationGroup(animationGroup);
    }
    pAnimationManager->Play();

但是在地图中显示不出我的动画,我还缺少那一步?
需要将UGAnimationManager::Instance()->Excute();放在定时器中执行,看看有没有加这个
加了的!

 m_Proc=new QTimer(this);
    connect( m_Proc,SIGNAL(timeout()),this,SLOT(TimerProc()));
    m_Proc->start(1000);

void CALLBACK TimerProc()
{
    UGAnimationManager::Instance()->Excute();
}

其中定时器是在程序初始化的时候就开始
你的动画没有设置到指定对象
我看了动画管理类里面的函数只有一个SetPlayRange函数,其他的找不到,应该如何设置到指定对象呢?
先获取到具体动画对象,再设置UGAnimationGO::SetGeometry()
还是需要把xml文件解析出来?
是的,可以获取解析出来的动画,否则就是新建动画对象。
UGString scaleAnimation = _U("常住人口_路径动画");

 在UGAnimationGO* pAnimation = pGroup->GetAnimationByName(scaleAnimation);获取动画时,pAnimation 的值==NULL;

<ANIMATIONSXML>

<ANIMATIONGROUP NAME="测试动画组">

<ANIMATION TYPE="0" ANIMATIONNAME="常住人口_路径动画">

<GEOMETRYUUID>a44ef27b-d9dc-40a8-9620-2877e4fa15c0</GEOMETRYUUID>

<STARTTIME>0.000000</STARTTIME>

<DURATION>5.000000</DURATION>

<PATHTYPE>0</PATHTYPE>

<POINTS/>

<SHOWPATHTRACK>0</SHOWPATHTRACK>

<PATHTRACKDIR>0</PATHTRACKDIR>

<TRACKLINEWIDTH>0.500000</TRACKLINEWIDTH>

<TRACKLINECOLOR>-16776961</TRACKLINECOLOR>

这个是我xml文件的一部分,

还有就是SetGeometry函数中参数UGGeometry3D* pGeometry的应该如何填
我使用UGint diad=pGroup ->GetCount();获取的动画数量为0,但是xml文件读取有事成功的

为啥呢?
你好,我在idestktop新建了一个数据源,数据源里面新建了一个CAD数据集用来进行态势推演,然后我在从这个数据源中取出CAD数据集添加到我的c++组件地图中,当我进行态势推演时

UGAnimationManager* pAnimationManager = UGAnimationManager::Instance();
    pAnimationManager->AddMapEditorWnd(qMapControl->GetUGMapWnd());//获取窗口句柄
    UGbool  ps=pAnimationManager->GetAnimationFromXML(strpath);

在函数GetAnimationFromXML处报错,无法执行下去
您好,很抱歉,不清楚你说的是什么错误?
...