**
地形编辑
**
一:技术原理:
地形编辑主要针对TED数据进行高度重绘,可以实现实时对地形进行修改。
地形编辑主要分为两步:绘制编辑范围,设置高程替代形式,进行地形编辑。
二:实现瓦片挖洞:
1. .Net代码
private void tileholeanalysis()
{
AxRenderControl rendercontrol=getRenderControl();//获取控件
IGeometryFactory geoFactory = new GeometryFactory();
//创建面要素,作为挖洞范围
IPolygon fde_polygon = (IPolygon)geoFactory.CreateGeometry(gviGeometryType.gviGeometryPolygon,
gviVertexAttribute.gviVertexAttributeZ);
fde_polygon.SpatialCRS = crs as ISpatialCRS;//定义面坐标系(保证创建的面与瓦片数据坐标相通)
//定义范围坐标
IPoint fde_point = (IPoint)geoFactory.CreateGeometry(gviGeometryType.gviGeometryPoint,
gviVertexAttribute.gviVertexAttributeZ); //创建点
fde_point.SetCoords(15527.52, 35748.21, 5.2, 0, 0);
fde_polygon.ExteriorRing.AppendPoint(fde_point);
fde_point.SetCoords(15567.42, 35684.12, 5.2, 0, 0);
fde_polygon.ExteriorRing.AppendPoint(fde_point);
fde_point.SetCoords(15604.36, 35708.22, 5.2, 0, 0);
fde_polygon.ExteriorRing.AppendPoint(fde_point);
fde_point.SetCoords(15562.71, 35771.03, 5.2, 0, 0);
fde_polygon.ExteriorRing.AppendPoint(fde_point);
fde_polygon.Close ();
//瓦片挖洞
I3DTileHole hole = rendercontrol.ObjectManager.Create3DTileHole(fde_polygon, System.Guid.Empty);
}
2. JS代码
function tileholeanalysis()
{
var __g=document.getElementById("__g");//获取控件
var geoFactory = __g.geometryFactory;
//创建面要素,作为挖洞范围
var fde_polygon = geoFactory.createGeometry(gviGeometryType.gviGeometryPolygon,
gviVertexAttribute.gviVertexAttributeZ);
//定义范围坐标
var fde_point = geoFactory.createGeometry(gviGeometryType.gviGeometryPoint,
gviVertexAttribute.gviVertexAttributeZ); //创建点
fde_point.setCoords(15527.52, 35748.21, 5.2, 0, 0);
fde_polygon.exteriorRing.appendPoint(fde_point);
fde_point.setCoords(15567.42, 35684.12, 5.2, 0, 0);
fde_polygon.exteriorRing.appendPoint(fde_point);
fde_point.setCoords(15604.36, 35708.22, 5.2, 0, 0);
fde_polygon.exteriorRing.appendPoint(fde_point);
fde_point.setCoords(15562.71, 35771.03, 5.2, 0, 0);
fde_polygon.exteriorRing.appendPoint(fde_point);
fde_polygon.close ();
//瓦片挖洞
var hole = __g.objectManager.create3DTileHole(fde_polygon, __rootId);
}
三:注意事项
1、瓦片挖洞仅支持瓦片数据
2、挖洞面必须闭合,推荐在挖洞前调用close方法手动闭合。
3、挖洞面需要与瓦片数据有相同的坐标系。
4、更多示例请参考SDK中级篇TileHole。