Hi there,
I'm trying to use the new GraphicTracker to track real time object in ArcGlobe.
I can quickly add the GraphicTracker in ArcGlobe but when I initialize it, the new layer (points with simple3dMarker symbol) is loaded into the "Draped Layers" category and the 3D objects strat moving aver the surface and it seems to ingnore the z values stored for each moving object. This happends also if I set the ".SetElevationMode" function to "esriGTElevation.esriGTElevationFloating".
How can I move the GraphicTracker into the "Floating Layers" category? Is there a specific pattern to follow?
This is the way I used to load objects into the GraphicTracker:
for (int i = 0; i < NumeroElementi; i++)
{
pPoint.X = Convert.ToDouble(rndCoordVal.Next(MinX, MaxX)) + rndCoordVal.NextDouble();
pPoint.Y = Convert.ToDouble(rndCoordVal.Next(MinY, MaxY)) + rndCoordVal.NextDouble();
if (m_TipoApplicazione == "3D")
pPoint.Z = 100.0;
m_dblItemsArray[i, 0] = pPoint.X;
m_dblItemsArray[i, 1] = pPoint.Y;
if (RandomStep)
{
m_dblItemsArray[i, 2] = rndCoordVal.NextDouble();
m_dblItemsArray[i, 3] = rndCoordVal.NextDouble();
}
else
{
m_dblItemsArray[i, 2] = 0.0;
m_dblItemsArray[i, 3] = 0.0;
}
if(m_TipoApplicazione == "3D")
m_dblItemsArray[i, 4] = 100.0;
m_GraphicTracker.Add(pPoint, p_TrackSymb);
if (m_TipoApplicazione == "3D")
{
m_GraphicTracker.SetElevationMode(i, esriGTElevation.esriGTElevationFloating);
m_GraphicTracker.SetOrientationMode(i, esriGTOrientation.esriGTOrientationFixed);
}
}
And this is what happend when the timer tick:
double dblX, dblY, dblZ;
m_GraphicTracker.SuspendUpdate = true;
for (int i = 0; i < NumeroOggetti; i++)
{
dblX = m_dblItemsArray[i, 0] + m_dblItemsArray[i, 2];
dblY = m_dblItemsArray[i, 1] + m_dblItemsArray[i, 3];
dblZ = m_dblItemsArray[i, 4];
m_GraphicTracker.MoveTo(i, dblX, dblY, dblZ);
m_dblItemsArray[i, 0] = dblX;
m_dblItemsArray[i, 1] = dblY;
}
m_GraphicTracker.SuspendUpdate = false;
Is there some other guys with same problem?
Thank you in advance
Emiliano Petrelli
ESRI Italia S.p.A.