首页 > 其他 > 详细

AE创建拓扑

时间:2017-01-08 23:54:34      阅读:433      评论:0      收藏:0      [点我收藏+]

转自原文 AE创建拓扑

 

/// <summary>
/// 创建拓朴
/// </summary>
/// <param name="featureWorkspace">要素集工作空间</param>
/// <param name="featuredatasetName"></param>
/// <param name="featureClassName"></param>
/// <returns></returns>
       public ITopology Create_Topology(IFeatureWorkspace featureWorkspace, string featuredatasetName, string featureClassName, string topologyName)
{
    try
    {
        //1.---打开拓朴所在的要素数据集,并创建拓朴
        IFeatureDataset featureDataset = featureWorkspace.OpenFeatureDataset(featuredatasetName);
        if (featureDataset != null)
        {
            ITopologyContainer topologyContainer = (ITopologyContainer)featureDataset;
            ITopology topology = topologyContainer.CreateTopology("topo", topologyContainer.DefaultClusterTolerance, -1, ""); //在这个地方报错
            //2.---给拓朴加入要素集
            IFeatureClassContainer featureclassContainer = (IFeatureClassContainer)featureDataset;
            IFeatureClass featureClass = featureclassContainer.get_ClassByName(featureClassName);
            topology.AddClass(featureClass, 5, 1, 1, false);  // Parameters: AddClass(IClass, double weight, int xyrank, int zrank, Boolean EventNotificationOnValidate).       
            //3.---返回拓朴
            return topology;
        }
    }
    catch (Exception ex)
    {
        //System.Diagnostics.Debug.WriteLine(ex.ToString()); 
        MessageBox.Show(ex.ToString());
    }
    return null;
}

      private void CreateTopButton_Click(object sender, EventArgs e)
{
    //打开目标数据库
    IWorkspace fWorkspace = open_pGDB_Workspace("e:\\Topo.mdb");
    IFeatureWorkspace fW = fWorkspace as IFeatureWorkspace;
    //启动编辑
    IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)fWorkspace;
    workspaceEdit.StartEditing(true);
    workspaceEdit.StartEditOperation();
    //调用创建拓朴的方法
    ITopology topology = Create_Topology(fW, "HN_DS", "HN", "Polygon_Topo");
    //停止编辑
    workspaceEdit.StopEditOperation();
    workspaceEdit.StopEditing(true); 
    if (topology != null)
    {
        MessageBox.Show("创建拓朴成功!");
    }
}

启动编辑是后来加上去的,若不启动编辑,则提示没有权限执行操作。

 

AE创建拓扑

原文:http://www.cnblogs.com/arxive/p/6262963.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!