ITopologicalOperator

请教,求两个Feature交集的面积

大家好,项目需要计算两个Feature(面)交集的面积
我写的方法如下,当两个Feature不相交时计算结果为0,相交时运行到蓝色部分有时候会出错有时候又能计算处结果。
大家有没有别的什么方法啊,谢谢大家
IWorkspaceFactory Fact = new SdeWorkspaceFactoryClass();
            IFeatureWorkspace FeaWorkSpace = null;
            IPropertySet pProtySet = new PropertySetClass();
            try
            {
                pProtySet = this.Sde_Conn();
                FeaWorkSpace = (IFeatureWorkspace)Fact.Open(pProtySet, 0);
                IFeatureClass Feacls = FeaWorkSpace.OpenFeatureClass("SDE.ZUOYEQU");
                IFeature Fea = Feacls.GetFeature(2);
                IFeature Fea1 = Feacls.GetFeature(6);
                ITopologicalOperator pTopo = null;
                pTopo = (ITopologicalOperator)Fea.Shape;
                IGeometry Geo = pTopo.Intersect(Fea1.Shape,esriGeometryDimension.esriGeometryNoDimension);
                IFeatureBuffer FeaBuffer = Feacls.CreateFeatureBuffer();
                FeaBuffer.Shape = Geo;
                ISpatialReferenceFactory pSpaRef = new SpatialReferenceEnvironmentClass();
                IProjectedCoordinateSystem pProCoordsSys = pSpaRef.CreateProjectedCoordinateSystem((int)esriSRProjCSType.esriSRProjCS_Beijing1954GK_15);
                FeaBuffer.Shape.Project(pProCoordsSys);
                IArea pArea = (IArea)FeaBuffer.Shape;
                MessageBox.Show(pArea.Area.ToString());
            }
            catch (Exception Exp)
            {
                MessageBox.Show(Exp.ToString());
            }
            finally
            {
                pProtySet = null;
                FeaWorkSpace = null;
                Fact = null;
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值