Невозможно редактировать векторный слой при запуске редактирования сеанса - PullRequest
0 голосов
/ 26 марта 2019

Я разрабатываю отдельное приложение на основе ArcGIS Engine, и когда я начинаю редактирование сеанса с помощью блока кода ниже:

//Declare the Engine editor at the class level.
private IEngineEditor m_engineEditor = new EngineEditorClass();

private void StartEditing(IMapControl2 m_mapControl)
{
    IMap map = m_mapControl.Map;

    //If an edit session has already been started, exit.
    if (m_engineEditor.EditState != esriEngineEditState.esriEngineStateNotEditing)
        return ;

    //Start editing the workspace of the first feature layer found.
    for (int layerCounter = 0; layerCounter <= map.LayerCount - 1; layerCounter++)
    {
        ILayer currentLayer = map.get_Layer(layerCounter);
        if (currentLayer is IFeatureLayer)
        {
            IFeatureLayer featureLayer = currentLayer as IFeatureLayer;
            IDataset dataset = featureLayer.FeatureClass as IDataset;
            IWorkspace workspace = dataset.Workspace;
            m_engineEditor.StartEditing(workspace, map);
            ((IEngineEditLayers)m_engineEditor).SetTargetLayer(featureLayer);
            break;
        }
    }
}

Исключительная ситуация с кодом ошибки: HRESULT: 0x80004005 (E_FAIL)). Пожалуйста, помогите мне

1 Ответ

0 голосов
/ 26 марта 2019

После запроса Google и чтения документов ArcGIS Engine. Я обнаружил, что моя SDE GeoDatabase не позволяет редактировать данные, потому что я отключаю менеджер версий ArcGIS GeoDatabase. Включите его и добавьте код, чтобы проверить, что векторный слой доступен для редактирования.

IEngineEditLayers m_engineLayersEditor = m_engineEditor as IEngineEditLayers;
if (!m_engineLayersEditor.IsEditable(featureLayer))
{
    MessageBox.Show("Can not start editing. Because feature layer is not allow editing", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...