ITopologicalOperator接口的一些错误

使用ITopologicalOperator接口的Intersect函数求两个多边形的交集时,不知为何出现一些异常情况。函数正常执行,但是求出来的图形面积为零,获取Envelope的XMax等数据也出错。询问单位前辈之后让我试一下Simplify函数处理一下再求交。以下是修改过后的代码:

        //求两个多边形的相交部分面积
        public static double getArea(IPolygon geo1, IPolygon geo2)
            {
                ITopologicalOperator pTopologicalOperator = geo1 as ITopologicalOperator;
                pTopologicalOperator.Simplify();
                ((ITopologicalOperator)geo2).Simplify();
                //此处应保持裁剪与被裁剪图层的空间参考一致,否则容易发生异常
                if (geo2.SpatialReference != geo1.SpatialReference)  //sourceGeometry为被裁剪的图形
                {
                    geo1.Project(geo2.SpatialReference);//此处应保持裁剪与被裁剪图层的空间参考一致,否则容易发生异常
                }
                IPolygon subGeo = (IPolygon)pTopologicalOperator.Intersect(geo2, esriGeometryDimension.esriGeometry2Dimension);
                IArea pArea = (IArea)subGeo;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值