skyline淹没分析

首先是创建3D面对象
private void CreatFlood()
        {
            object[] safeArrayVertices = new object[12];
            safeArrayVertices[0] = -118.82295;
            safeArrayVertices[1] = 100.0;
            safeArrayVertices[2] = 34.15543;
            safeArrayVertices[3] = -118.82173;
            safeArrayVertices[4] = 100.0;
            safeArrayVertices[5] = 34.15387;
            safeArrayVertices[6] = -118.82284;
            safeArrayVertices[7] = 100.0;
            safeArrayVertices[8] = 34.15426;
            safeArrayVertices[9] = -118.82214;
            safeArrayVertices[10] = 100.0;
            safeArrayVertices[11] = 34.15416;

            iInformationTree = (IInformationTree5)Utility.terraExplorer;
            IObjectManager51 iObjectManager51 = new TerraExplorerClass();
            ITerrain3DPolygon5 iTerrain3DPolygon5 = iObjectManager51.Create3DPolygon(safeArrayVertices, 1, 0x0000ff00, 10, 0x00646464, 0, 0, "New");
            
        }
获取面对象,拉伸高程
int itemID =terraExplorerClass.GetNextItem(0, ItemCode.CHILD);
            int parentID =terraExplorerClass.GetNextItem(itemID, ItemCode.PARENT);

            while (itemID != 0)
            {
                string name;
                name = Utility.terraExplorerClass.GetItemName(itemID);
                if (name.Contains("New"))
                {

                    ITerrain3DPolygon5 iTerrain3DPolygon5 = iInformationTree.GetObjectEx(itemID, "ITerrain3DPolygon5") as ITerrain3DPolygon5;
                    iTerrain3DPolygon5.Height = trackBarHeight.Value;

                }
                itemID =terraExplorerClass.GetNextItem(itemID, ItemCode.NEXT);
                parentID =terraExplorerClass.GetNextItem(itemID, ItemCode.PARENT);

            }
淹没分析要是只是建个面,盖上去,那确实是玩玩,真实的淹没和水流、水量、流速都有关系,需要比较复杂的水文和DEM模型来模拟的。

还有一个办法就是使用经验模型,相对简单一些,对应到空间数据模型,就是一个曲面了。

转载于:https://www.cnblogs.com/shaoge/articles/1540714.html

你可能感兴趣的:(skyline淹没分析)