阅读:2528回复:3
使用Natural Breaks 分类方法渲染影像
<P>Dim pRasterBand As IRasterBand<BR> Dim pRasBndCol As IRasterBandCollection<BR> pRasBndCol = m_pRasterLayer.Raster<BR> pRasterBand = pRasBndCol.Item(0)<BR> pRasterBand.ComputeStatsAndHist()<BR> Dim pTable As ITable<BR> pTable = pRasterBand<BR> Dim pBasicHist As IBasicHistogram<BR> pBasicHist = New BasicTableHistogramClass<BR> Dim pTableHist As ITableHistogram<BR> pTableHist = pBasicHist<BR> pTableHist.Field = "Value"<BR> pTableHist.Table = pTable<BR> Dim DataVals As Object<BR> Dim DataFreq As Object<BR> pBasicHist.GetHistogram(DataVals, DataFreq)</P>
<P><STRONG> Dim pClassify As IClassify<BR> pClassify = New NaturalBreaksClass</STRONG></P> <P><STRONG> pClassify.SetHistogramData(DataVals, DataFreq)<BR> Dim iClassCount As Integer<BR> iClassCount = 5<BR> pClassify.Classify(5) '-----错误出现在这儿,提示"未将对象引用设置到对象的实例"<BR> Dim ClassBreaks() As Double<BR> ClassBreaks = pClassify.ClassBreaks<BR> Debug.WriteLine(UBound(ClassBreaks))</STRONG></P> <P><STRONG>类似代码稍修改一下(就是将Object数据类型修改为Vb6下的Variant类型),就可正确在以ARCGIS VBA下运行,但此代码在.NET下运行,每运行到pClassify.class(5)时,总提示错误"未将对象引用设置到对象的实例",不知问题出在哪,请高手解答一下,谢谢</STRONG></P> |
|
|
1楼#
发布于:2006-07-16 20:14
用iclassifygen接口就可以实现
|
|
|
2楼#
发布于:2006-07-14 09:13
<P>最近忙,有几天没来了,希望大家多多讨论哦</P>
<P>.net中和vb中的确有很大不同了,在迁移代码的时候大家会发现</P> |
|
|
3楼#
发布于:2006-07-12 09:21
<P>不明白这个论坛有没有人回答,我刚才已经找到问题的所在了,代码没有问题,只是ESRI又有了新接口实现该功能.</P>
<P>天天忙着给别人回贴,却没有人来看我的贴,更不用说回了,</P> <P>我就不信真的就没有人会,伤心!</P> |
|
|