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);    
    }
  • 相关阅读:
    .Net vs Java?
    使用HyperV安装Linux系统
    C#调用Lua
    KubernetesService介绍服务发现
    缓存雪崩、缓存击穿和缓存穿透
    10 个开源项目
    minikube cncf.io
    Parallel的使用
    通过Rancher Desktop在桌面上运行K8s
    2021 .NET 开发者峰会顺利在网上落幕,线上直播回看汇总
  • 原文地址:https://www.cnblogs.com/arxive/p/6017425.html
Copyright © 2011-2022 走看看