首先是创建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模型来模拟的。
还有一个办法就是使用经验模型,相对简单一些,对应到空间数据模型,就是一个曲面了。
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模型来模拟的。
还有一个办法就是使用经验模型,相对简单一些,对应到空间数据模型,就是一个曲面了。