ArcObjects, ArcScene исчезновение слоёв

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Lottarend
Интересующийся
Сообщения: 15
Зарегистрирован: 01 авг 2012, 08:00
Репутация: 0

ArcObjects, ArcScene исчезновение слоёв

Сообщение Lottarend » 08 авг 2014, 03:03

Добрый день. Может быть, кто-нибудь сможет посоветовать что-либо.
Разбираюсь с 3D, добавляю к скетчу точку так же, как я это делал в 2D (по другому пока не понял).
Добавленная точка не видится, пока полностью не удалить и не вставить слой обратно в TOCControl. Что самое любопытное, если этот слой с точками засунуть в какой-либо групповой слой - точки исчезают (а мне нужно, чтобы он там и лежал). Вынести за пределы группового слоя - пожалуйста, всё видно.
Пробовал обновлять сцену, ничего не обновляется...
Я вот так добавляю точку

Код: Выделить всё

 if (feature != null && fLayer != null)
                {
                    string datasetName = (fLayer.FeatureClass as IDataset).Name;

                    IWorkspace workspace = (fLayer.FeatureClass as IDataset).Workspace;
                    //установить в качестве целевого слоя и поставить на нём камеру
                    IEngineEditLayers layerEditor = (IEngineEditLayers)m_engineEditor;
                    layerEditor.SetTargetLayer(fLayer, fLayer.FeatureClass.FeatureClassID);
                    IMap map = pScene as IMap;
                    m_engineEditor.StartEditing(workspace, map);

                    //Clone the original edit sketch envelope. Used to invalidate the display.
                    IEngineEditSketch editSketch = (IEngineEditSketch)m_engineEditor;
                    IEnvelope invalidateEnv = ((IClone)editSketch.Geometry.Envelope).Clone() as IEnvelope;
                    IEngineSketchOperation sketchOp = new EngineSketchOperationClass();
                    sketchOp.Start(m_engineEditor);
                    editSketch.AddPoint(pPoint, true);
                    sketchOp.Finish(invalidateEnv, esriEngineSketchOperationType.esriEngineSketchOperationVertexAdded, pPoint);
                    editSketch.FinishSketchPart();
                    editSketch.RefreshSketch();
                    m_engineEditor.StopEditing(true);
Последний раз редактировалось Lottarend 08 авг 2014, 04:20, всего редактировалось 1 раз.

Lottarend
Интересующийся
Сообщения: 15
Зарегистрирован: 01 авг 2012, 08:00
Репутация: 0

Re: ArcObjects, ArcScene исчезновение слоёв

Сообщение Lottarend » 08 авг 2014, 04:12

Сам спросил, сам ответил -)

Код: Выделить всё

 IMap map = pScene as IMap;
 IActiveView act = map as IActiveView;
 act.PartialRefresh(esriViewDrawPhase.esriViewGeography, fLayer as ILayer, null);
Просто удивительно, как действует вопрос на форуме на спросившего - сразу находится ответ Оо
Этот код обновляет слой, и он никуда не исчезает -)

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot] и 2 гостя