• 编辑时snapping的添加


    原文 编辑时snapping的添加

    注意需要在编辑模式下进行snapping的添加(也即先需要使用IEngineEditor进入编辑状态):

     

    IMapControl3 mMap = (IMapControl3)((IToolbarControl)toolHook).Buddy;
    IEngineEditor m_engineEditor = new EngineEditorClass();
    if (m_engineEditor.EditState == esriEngineEditState.esriEngineStateNotEditing)
    {
    //Start editing the workspace of the first feature layer found.        
    ILayer currentLayer = mMap.get_Layer(0);
    if (currentLayer is IFeatureLayer)
    {
        IFeatureLayer featureLayer = currentLayer as IFeatureLayer;
        IDataset dataset = featureLayer.FeatureClass as IDataset;
        IWorkspace workspace = dataset.Workspace;
        m_engineEditor.StartEditing(workspace, mMap.Map);
        ((IEngineEditLayers)m_engineEditor).SetTargetLayer(featureLayer, 0);
    }
    //snapping
    if (mMap.LayerCount != 0)
    {
        IEngineEditor editor = new EngineEditorClass();
        IEngineEditLayers editLayers = editor as IEngineEditLayers;
        IEngineSnapEnvironment snapEnvironment = editor as IEngineSnapEnvironment;
    
        IEngineFeatureSnapAgent featureSnapAgent = new EngineFeatureSnap();
        featureSnapAgent.FeatureClass = ((IFeatureLayer)mMap.get_Layer(0)).FeatureClass; ;
        featureSnapAgent.HitType = esriGeometryHitPartType.esriGeometryPartVertex | esriGeometryHitPartType.esriGeometryPartBoundary | esriGeometryHitPartType.esriGeometryPartEndpoint;
        snapEnvironment.AddSnapAgent(featureSnapAgent);    
    }
  • 相关阅读:
    做代码的曲线问题
    全书目录
    关于《Delphi源代码分析》的讨论
    说说“从编程到工程”专栏的由来
    CF285E Positions in Permutations
    CF264B Good Sequences
    CF115E Linear Kingdom Races
    CF633F The Chocolate Spree
    CF767C Garland
    CF559C Gerald and Giant Ches
  • 原文地址:https://www.cnblogs.com/arxive/p/6017425.html
Copyright © 2020-2023  润新知