ArcEngine 设置要素图层的基准高(Base Height),使其紧贴地形TIN
2017-08-13 23:35
399 查看
通常将正射影像叠加在地形表面作为纹理渲染,矢量要素图层同样可以叠加在地形表面:
设置基准高前:设置基准高后:
核心代码:
private void 设置基准高ToolStripMenuItem_Click(object sender, EventArgs e)
{
for (int lyrIndex = 0; lyrIndex < axSceneControl1.Scene.LayerCount; lyrIndex++)
{
ILayer pLayer = axSceneControl1.Scene.get_Layer(lyrIndex);
//getlayerbyName获取
if (pLayer is IFeatureLayer)
{
SetlayerSurface(pLayer);
}
}
}
public I3DProperties Get3DPropsFromLayer(ILayer pLyr)
{
ILayerExtensions pLyrExts = (ILayerExtensions)pLyr;
I3DProperties p3DProp = null;
for (int i = 0; i < pLyrExts.ExtensionCount; i++)
if (pLyrExts.get_Extension(i) is I3DProperties)
p3DProp = (I3DProperties)pLyrExts.get_Extension(i);
return p3DProp;
}
public void SetlayerSurface(ILayer layer)
{
ISurface surface=null;
for (int lyrIndex = 0; lyrIndex < axSceneControl1.Scene.LayerCount; lyrIndex++)
{
ILayer pLayer = axSceneControl1.Scene.get_Layer(lyrIndex);
//getlayerbyName获取
if (pLayer is ITinLayer)
{
ITinLayer pTinLayer = pLayer as ITinLayer;
ITinSurface pSurf = pTinLayer.Dataset as ITinSurface;
surface = pSurf as ISurface;
}
}
ILayerExtensions layerextensions = layer as ILayerExtensions;
I3DProperties properties = Get3DPropsFromLayer(layer);
properties.BaseOption = esriBaseOption.esriBaseSurface;
properties.BaseSurface = surface;
properties.Apply3DProperties(layer);
//properties.ZFactor = 0;
axSceneControl1.SceneGraph.RefreshViewers();
}
相关文章推荐
- AE学习笔记(三)——ArcScene下设置图层BaseHeight
- ArcEngine二次开发_03(鼠标在图层中选择要素进行高亮显示)
- AE二次开发,右键图层,设置图层要素标注
- Unity3D Terrain Settings 彻底搞懂 地形详细设置 全实验与解析 (二)base map dist
- C#+ArcEngine:设置矢量图层的透明度
- terraExplorer 6.6 for javascript 获取地理要素上的坐标值,通过图层设置标注(作为上一篇的补充)
- C#+ArcEngine:设置矢量图层的透明度
- ILayerEffects接口用来设置一个要素图层的透明度,对比度,对比度
- 用ArcEngine的工具条添加图层要素
- [转]用ArcEngine的工具条添加图层要素
- ArcEngine中设置添加图层的图例显示为水平一行的样式的方法
- ArcGIS沿面状图层要素外边缘构建TIN和进行网络分析求最短路径
- 用ArcEngine的工具条添加图层要素
- ArcEngine c# 创建shp图层,并将要素写入图层保存
- ArcEngine根据选择的要素判断其所属图层
- HTML 中块级元素设置 height:100% 的实现
- OFBIZ分享:base-permission该如何设置
- ArcEngine 要素更新效率探讨
- 在ArcEngine下实现图层属性过滤的两种方法
- 获取图层字段的唯一值集合(ArcEngine)