怎么在arcengine中进行水面渲染 反射

2441人阅读
ArcEngine开发(13)
#region 预览
/// &summary&
/// &/summary&
private void PreviewLineSymbol()
IStyleGalleryClass pStyleGalleryC//以下定义style类型
pStyleGalleryClass = new LineSymbolStyleGalleryClassClass();
this.previewBox.Image = Image.FromHbitmap(PreviewSymbol(pStyleGalleryClass, this.pStyleSymbol, this.previewBox.Width, this.previewBox.Height).GetHbitmap());
public Bitmap PreviewSymbol(IStyleGalleryClass pStyleGalleryClass, object symbolItem, int imgWidth, int imgHeight)
{//获取图例Bitmap
Bitmap bitmap = new Bitmap(imgWidth, imgHeight);
Graphics graphics = Graphics.FromImage(bitmap);
tagRECT rect = new tagRECT();
rect.right = bitmap.W
rect.bottom = bitmap.H
System.IntPtr hdc = graphics.GetHdc();
pStyleGalleryClass.Preview(symbolItem, hdc.ToInt32(), ref rect);
graphics.ReleaseHdc(hdc);
graphics.Dispose();
#endregion
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:329526次
积分:3750
积分:3750
排名:第9014名
原创:54篇
评论:105条
(2)(2)(2)(2)(2)(2)(2)(1)(2)(1)(1)(5)(5)(3)(3)(1)(1)(3)(5)(3)(1)(1)(1)(2)(1)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'arcengine开发专题图渲染程序_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
arcengine开发专题图渲染程序
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢5196人阅读
摘要:Feature的常用的绘制方法包括:1.简单绘制;2.唯一值绘制/多字段唯一值绘制;3.点密度/多字段点密度绘制;4.数据分级绘制;5.质量图(饼图/直方图); 6.按比例尺渲染;7.比例符号渲染。
一.Feature的基本渲染方法
&&& Feature的常用的绘制方法包括:1.简单绘制;2.唯一值绘制/多字段唯一值绘制;3.点密度/多字段点密度绘制;4.数据分级绘制;5.质量图(饼图/直方图); 6.按比例尺渲染;7.比例符号渲染。
& 1.简单渲染
&&& 简单渲染是ArcEngine的默认渲染,我们打开一个FeatureClass,建立一个FeatureLayer的时候,如果没有给FeatureLayer设置Renderer那么使用的就是简单渲染。简单渲染对整个图层中的所有Feature使用同一种方式显示。简单渲染在ArcEngine中用ISimpleRenderer来表示,ISimpleRenderer的使用方式如下:
//假设layer是一个IFeatureLayer,获取IGeoFeatureLayer
& IGeoFeatureLayer geoLayer=layer as IGeoFeatureL
& //构造SimpleRenderer
& ISimpleRenderer renderer=new SimpleRendererClass();
& renderer.description=&简单的渲染一下&;
& renderer.Label=&符号的标签&;
& //假设sym是一个和该图层中Geometry类型对应的符号;
& renderer.Symbol=
& //为图层设置渲染,注意需要刷新该图层。
& geoLayer.Renderer=
& 2.独立值/多字段独立值渲染
&&& 独立值/多字段独立值渲染,根据Feature的某一个字段的数据或某几个字段的组合结果来确定符号。具有相同值或相同组合值的Feature,使用一样的符号。在使用多个字段的使用,每个字段的取值之间使用分割符来连接。字段的取值顺序和在Renderer中设置的一样。基本使用方式如下:
& //假设layer是一个IFeatureLayer,获取IGeoFeatureLayer
& IGeoFeatureLayer geoLayer=layer as IGeoFeatureL
& //构造一个UniqueValueRenderer
& IUniqueValueRenderer renderer=new UniqueValueRendererClass();
& //假设使用两个字段来渲染
& renderer.FieldCount=2;
& //假设YSLX字段表示要素类型
& //假设YSYT字段表示要数用途
& renderer.set_Field(0,&YSLX&);
& renderer.set_Field(1,&YSYT&);
& //字段之间使用 | 来连接(默认取值)
& renderer.FieldDelimiter=&|&;
& //设置默认符号
& renderer.DefaultSymbol=defaultS
& renderer.DefaultLabel=&默认Label&;
& //添加值
& renderer.addValue(&房屋|民居&,&民居房屋&,MJSymbol);
& renderer.addValue(&房屋|商业用地&,&商业用地&,SYSymbol);
& //还可以通过set_Symbol,set_Heading、set_Value来修改上述设置。
& geoLayer.Renderer=renderer.
& 3.点密度/多字段点密度
&&& 点密度图通过在Feature的图形上打点来表示数据的数多,点越密集表示数据量越大。还可以使用多字段的点密度图。这个使用同一个Feature上就可以显示几种不同的点。注意点密度图有一个特殊的地方,点密度图使用的符号是面状符号。而其中有需要包括点状符号,接口使用如下:
& IDotDensityRenderer renderer=new DotDensityRendererClass ();
&& IRendererFields flds=(IRendererFields)
&& flds.AddField(&MJ &,&面积&);
&& flds.AddField(&RK&,&人口&);
&& IDotDensityFillSymbol ddSym=new DotDensityFillSymbolClass();
&& ISymbolArray symArray=(ISymbolArray)ddS
&& symArray.AddSymbol(mjSymbol);
&& symArray.AddSymbol(rkSymbol);
&& ddSym.Outline =(ILineSymbol)outlineS&&
&& ddSym.DotSize =10 ;
&& ddSym.FixedPlacement=&&
&& renderer.DotDensitySymbol =ddS
&& renderer.DotValue=20 ;
&& renderer.MaintainSize=this.m_dotdensityParam .MaintainS
&& IGeoFeatureLayer geoLayer=(IGeoFeatureLayer)
&& geoLayer.Renderer =(IFeatureRenderer)
4.数据分级绘制(使用IClassBreaksRenderer)
5.饼图/直方图(使用IChartRenderer)
6.按比例尺渲染(使IScaleDependentRenderer)
7.比例符号渲染(使用 IProportionalSymbolRenderer )
二.图例的使用
&&& 图例的使用通过ILegendInfo接口。每个Renderer都实现了该接口,但是有时候该实现不好用,所以也可以自己实现该接口。实现过程是比较简单的。
三.渲染层次
&&& 使用ILevelRender 接口。该接口可以指定一 当前的Level(-1)表示绘制全部。然后提供一个符号数组,注意每个符号要指定Level,如果不指定就默认为0。
四.透明度控制
&&& 透明度控制使用 ITransparencyRenderer 接口。该接口允许指定一个字段,字段取值用来表示透明度 注意 透明度的取值在0--100之间。
五.数据正规化
&&& 数据正规化用 IDataNormalization 接口来表示。该接口提供了几种正规化表示方法。
六.部分渲染
&&& 部分渲染通过使用IDataExclusion& 来实现。该接口允许提供过滤语句来过滤掉不需要渲染的Feature。同时也可以给他们制定特殊的符号。同时控制是否显示
七.旋转控制
&&& 旋转控制通过使用IRotationRenderer 接口来表示。该接口要求提供旋转角度的字段。同时要求提供旋转的方法。
八.数据样本
&&& IDataSampling& 没有使用过。
九.外表关联
ITable dispTable=((IDisplayTable)feaLayer).DisplayT//图层
ITable attTable;//外表
IMemoryRelationshipClassFactory fac=new MemoryRelationshipClassFactoryClass ();
IRelationshipClass relClass=fac.Open(&JZMJ&,(IObjectClass)dispTable,&ZDDJH&,
&& IObjectClass)attTable,&G03&,
&& &Forward&,&Backward&,
&& esriRelCardinality.esriRelCardinalityOneToOne);
IDisplayRelationshipClass dispRelClass=feaLayer as IDisplayRelationshipC
dispRelClass.DisplayRelationshipClass(relClass,esriJoinType.esriLeftInnerJoin);
十.统计分析
&& ITableHistogram& tableHistogram=new BasicTableHistogramClass ();
& tableHistogram.Table =((IDisplayTable)layer).DisplayTable& ;
& tableHistogram.Field =fieldN
& object valueArray=null, freq=
& IBasicHistogram basicHistogram=(IBasicHistogram)tableH
& basicHistogram.GetHistogram(out valueArray,out freq);
& IClassify classify=
&& int breakNum=6;
&& //分类方法
&& switch(ClassifyMethod )
&&& case ClassifyMethodName.lsClassifyMethodEqualInterval:
&&&&& EqualIntervalClass& eq=new EqualIntervalClass ();
&&&&& eq.Classify (valueArray,freq,ref breakNum);
&&&&& classify=(IClassify)&&&&
&&& case ClassifyMethodName.lsClassifyMethodStandardDeviation:
&&&&& StandardDeviationClass sd=new StandardDeviationClass ();
&&&&& IStatisticsResults stat= histogram as IStatisticsR
&&&&& classify=sd as IC
&&&&& classify.SetHistogramData (valueArray,freq);
&&&&& IDeviationInterval di=sd as IDeviationI
&&&&& di.DeviationInterval=1;
&&&&& di.Mean=stat.M
&&&&& di.StandardDev=stat.StandardD
&&&&& classify.Classify (ref breakNum);&&&&
&&& case ClassifyMethodName.lsClassifyMethodQuantile:
&&&&& Quantile qc=new QuantileClass ();
&&&&& qc.Classify (valueArray,freq,ref breakNum);
&&&&& classify=qc as IC&&&&
&&& case ClassifyMethodName.lsClassifyMethodNaturalBreaks:
&&&&& NaturalBreaksClass nb=new NaturalBreaksClass ();
&&&&& nb.Classify (valueArray,freq,ref breakNum);
&&&&& classify=nb as IC&&&&
&&& case ClassifyMethodName.lsClassifyMethodDefinedInterval:
&&&& DefinedIntervalClass di=new DefinedIntervalClass ();
&&&& di.IntervalRange =this.m_classBreaksParam .I
&&&& di.Classify (valueArray,freq,ref breakNum);
&&&& classify=di as IC
&&& default:
&&&& EqualIntervalClass& eq=new EqualIntervalClass ();
&&&& eq.Classify (valueArray,freq,ref breakNum);
&&&& classify=(IClassify)
&& object o=classify.ClassB
&& System.Array breakArray= o as System.A
&& 现在breakArray中就是统计后的数据了。
本篇文章来源于 GIS空间站 转载请以链接形式注明出处 网址:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:389847次
积分:3736
积分:3736
排名:第9075名
原创:31篇
转载:79篇
评论:83条
(2)(2)(5)(1)(2)(4)(7)(12)(2)(4)(3)(1)(1)(6)(5)(5)(4)(2)(1)(8)(1)(2)(1)(13)(16)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'2443人阅读
ArcEngine开发(13)
#region 预览
/// &summary&
/// &/summary&
private void PreviewLineSymbol()
IStyleGalleryClass pStyleGalleryC//以下定义style类型
pStyleGalleryClass = new LineSymbolStyleGalleryClassClass();
this.previewBox.Image = Image.FromHbitmap(PreviewSymbol(pStyleGalleryClass, this.pStyleSymbol, this.previewBox.Width, this.previewBox.Height).GetHbitmap());
public Bitmap PreviewSymbol(IStyleGalleryClass pStyleGalleryClass, object symbolItem, int imgWidth, int imgHeight)
{//获取图例Bitmap
Bitmap bitmap = new Bitmap(imgWidth, imgHeight);
Graphics graphics = Graphics.FromImage(bitmap);
tagRECT rect = new tagRECT();
rect.right = bitmap.W
rect.bottom = bitmap.H
System.IntPtr hdc = graphics.GetHdc();
pStyleGalleryClass.Preview(symbolItem, hdc.ToInt32(), ref rect);
graphics.ReleaseHdc(hdc);
graphics.Dispose();
#endregion
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:329528次
积分:3750
积分:3750
排名:第9014名
原创:54篇
评论:105条
(2)(2)(2)(2)(2)(2)(2)(1)(2)(1)(1)(5)(5)(3)(3)(1)(1)(3)(5)(3)(1)(1)(1)(2)(1)(1)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'ArcEngine 渲染的使用_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
ArcEngine 渲染的使用
你可能喜欢}

我要回帖

更多关于 su水面渲染参数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信