Привет всем.
Есть у меня на карте в ArcScene линейный слой. Нужно в каждой выделенной линии данного слоя у одной из точек (пусть будет 1я точка) изменить Z-координату на некое число, пусть будет 55. Вот.
Выделенные линии я могу получить, конвертирую их в IPointCollection, могу получить высоту каждой точки. А как изменить-то высоту?
Вот как я делаю:
IPoint TestPoint;
TestPoint = pointCollection.get_Point(0);
TestPoint.X = pointCollection.get_Point(0).X;
TestPoint.Y = pointCollection.get_Point(0).Y;
TestPoint.Z = pointCollection.get_Point(0).Z + zOffset;
//MessageBox.Show("test.z = " + TestPoint.Z.ToString());
var transform3D = (ITransform3D)TestPoint;
transform3D.Move3D(0, 0, zOffset);
var newTestPoint = (IPoint)transform3D;
pointCollection.ReplacePoints(0, 1, 1, newTestPoint);
однако, после выполнения данного участка кода ничего не изменяется в координатах.
Также пробовал через IGeometryBridge:
IPoint[] array = new IPoint[1];
array[0] = newTestPoint;
IGeometryBridge testBridge = new GeometryEnvironmentClass();
//MessageBox.Show("until testBridge");
try
{
testBridge.ReplacePoints(pointCollection, 0, 1, array);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
//MessageBox.Show("after testBridge");
Тут вообще беда - постоянно выскакивает Exception...