首页 / 浏览问题 / 组件GIS / 问题详情
iDesktop 二次开发 合并图形 错误
12EXP 2021年07月28日

合并图形失败,其中有图形有拓扑错误,导致合并的结果有图形丢失。

public static Geometry UnionGeometry(Recordset pRecordset)
        {
            List<Geometry> pGeommetryList = new List<Geometry>(); 
            if (pRecordset != null && pRecordset.RecordCount > 0)
            {
                pRecordset.MoveFirst();
                while (!pRecordset.IsEOF)
                {
                    Geometry pGeo = pRecordset.GetGeometry();
                    GeoLine pLine = (pGeo as GeoRegion).ConvertToLine();
                    pGeommetryList.Add(pLine.ConvertToRegion()); 
                    pRecordset.MoveNext();
                } 
            }

           Geometry pResult = null;
            foreach (Geometry pGeo in pGeommetryList)
            {
                if (pResult == null)
                {
                    pResult = pGeo.Clone();
                }
                else
                {
                    if (pGeo.ID == 14)
                    {
                        Geometry pTmp = pGeo.Clone();
                        pResult = Geometrist.Union(pResult, pTmp);
                    }
                    else
                    {
                        pResult = Geometrist.Union(pResult, pGeo.Clone());
                    }
                }
            } 

            return pResult;
        }

希望在合并前(调用Geometrist.Union)能够处理一下拓扑。请告知处理单个图形Geometry的拓扑方法。

1个回答

您好,您具体想对面进行那种拓扑处理或检查呢?

单纯进行两个几何对象之间的求并运算的话,一般是不会导致消失的。

建议您检查下您的循环和判断逻辑,应该是您的算法逻辑导致的。

希望可以帮助到您!
10,588EXP 2021年07月28日
...