zoukankan      html  css  js  c++  java
  • 编辑时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);                    
        }
    
    }
  • 相关阅读:
    决策树分类
    集群服务器 获取COOKIE错误
    React 自写Loading
    HTB-靶机-Unattended
    HTB-靶机-LaCasaDePapel
    HTB-靶机-FriendZone
    HTB-靶机-CTF
    HTB-靶机-FluJab
    HTB-靶机-Help
    HTB-靶机-Chaos
  • 原文地址:https://www.cnblogs.com/arxive/p/6262453.html
Copyright © 2011-2022 走看看