hahaaluo
路人甲
路人甲
  • 注册日期2006-08-05
  • 发帖数146
  • QQ
  • 铜币591枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1712回复:6

高手们,能告诉我这个是为什么???

楼主#
更多 发布于:2006-09-05 13:19
<P> //分类渲染(比如人口的总数)<BR>  private void cmdClassBreak_Click(object sender, System.EventArgs e)<BR>  {<BR>   ITable pTable;<BR>   ITableHistogram pTableHistogram;<BR>   IHistogram  pHistogram;<BR>   IClassify  pClassify;<BR>   object dataValues;<BR>   object dataFrequency;<BR>   if(axMapControl1.LayerCount>0)<BR>   {<BR>    pGeoFeatureLayer=axMapControl1.get_Layer(0) as IGeoFeatureLayer;<BR>   }<BR>   pTable=pGeoFeatureLayer as ITable;<BR>   pTableHistogram=new TableHistogramClass();<BR>   pHistogram=pTableHistogram as IHistogram;<BR>            //取得人口总数数据<BR>   pTableHistogram.Field=strPopField;<BR>   pTableHistogram.Table=pTable;<BR>   pHistogram.GetHistogram( out dataValues ,out  dataFrequency );<BR>            //将数据分类<BR>   pClassify=new EqualIntervalClass();<BR>   pClassify.SetHistogramData(dataValues,dataFrequency);<BR>   <BR>      //int ClassesCount;<BR>   double[] Classes;<BR>    <BR>   pClassify.Classify(ref numDesiredClasses);<BR>  <BR>   <BR>   Classes=(double[])pClassify.ClassBreaks;<BR>   <BR>   //ClassesCount= Classes.Length;</P>
<P>   IClassBreaksRenderer pClassBreaksRenderer;<BR>   pClassBreaksRenderer=new ClassBreaksRendererClass();<BR>   pClassBreaksRenderer.Field=strPopField;<BR>   pClassBreaksRenderer.BreakCount=4;<BR>   pClassBreaksRenderer.SortClassesAscending=true;</P>
<P>   IHsvColor pFromColor;<BR>   pFromColor=new HsvColorClass();<BR>   pFromColor.Hue=60;<BR>   pFromColor.Saturation=100;<BR>   pFromColor.Value=96;<BR>            <BR>   IHsvColor pToColor;<BR>   pToColor=new HsvColorClass();<BR>   pToColor.Hue=0;<BR>   pToColor.Saturation=100;<BR>   pToColor.Value=96;</P>
<P>            IAlgorithmicColorRamp  pRamp;<BR>   IEnumColors pEnumColors;<BR>   bool ok;<BR>   <BR>   pRamp=new AlgorithmicColorRampClass();<BR>   pRamp.Algorithm=ESRI.ArcGIS.Display.esriColorRampAlgorithm.esriHSVAlgorithm;<BR>   pRamp.FromColor=pFromColor;<BR>   pRamp.ToColor=pToColor;<BR>   pRamp.Size=4;<BR>   pRamp.CreateRamp(out ok);<BR>   pEnumColors=pRamp.Colors;<BR>   pEnumColors.Reset();</P>
<P>   IColor pColor;<BR>   ISimpleFillSymbol pSimpleFillSymbol;<BR>   long breakIndex;</P>
<P>   for(breakIndex=0;breakIndex<3;breakIndex++)<BR>   {<BR>      pColor=pEnumColors.Next();<BR>      pSimpleFillSymbol=new SimpleFillSymbolClass();<BR>      pSimpleFillSymbol.Color=pColor;<BR>      pSimpleFillSymbol.Style=ESRI.ArcGIS.Display.esriSimpleFillStyle.esriSFSSolid;<BR>      pClassBreaksRenderer.set_Symbol(Convert.ToInt32(breakIndex),pSimpleFillSymbol as ISymbol);//=pSimpleFillSymbol;<BR>      double d=Classes[breakIndex];<BR>      pClassBreaksRenderer.set_Break(Convert.ToInt32(breakIndex),d);//=Classes;</P>
<P>   }</P>
<P>   pGeoFeatureLayer.Renderer=pClassBreaksRenderer as IFeatureRenderer;</P>
<P>   axMapControl1.CtlRefresh(esriViewDrawPhase.esriViewGeography,Type.Missing,Type.Missing);</P>

<P>  }</P>
喜欢0 评分0
hahaaluo
路人甲
路人甲
  • 注册日期2006-08-05
  • 发帖数146
  • QQ
  • 铜币591枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-09-05 13:21
<P>这是一个分类渲染的例子,不知道是哪个地方出了问题,总是运行不了的??</P>
<P>请各位高手帮帮忙看看我是错在哪个地方了,谢谢你们了~~~~~~~~~~</P>
举报 回复(0) 喜欢(0)     评分
hsghxm
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2006-09-05 14:34
把错误信息以及报错行贴出来贴出来再问!
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
hahaaluo
路人甲
路人甲
  • 注册日期2006-08-05
  • 发帖数146
  • QQ
  • 铜币591枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2006-09-05 16:01
<P> Classes=(double[])pClassify.ClassBreaks;<BR>运行到这一行就出错了  </P>
<P>说是为将对象引用到对象实例   还有就是单步运行时是地图变不见了   是怎么回事??</P>
举报 回复(0) 喜欢(0)     评分
hahaaluo
路人甲
路人甲
  • 注册日期2006-08-05
  • 发帖数146
  • QQ
  • 铜币591枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-09-06 09:54
<P>怎么还是没人来看看我的这个呢 </P>
举报 回复(0) 喜欢(0)     评分
hsghxm
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2006-09-06 12:26
<P>帮助里面的VB代码你想转成c#是吧,我刚把它转了一下,测试通过,没问题  ,把代码帖出来,你对照一下,应该就没问题了! </P>
<P> ITable pTable =m_pGeoFeatureLayer as ITable;<BR>    IClassify pClassify;<BR>    ITableHistogram pTableHistogram;<BR>    IHistogram pHistogram;<BR>    object dataFrequency,dataValues;</P>
<P>    pTableHistogram = new TableHistogramClass();<BR>    pHistogram = pTableHistogram as IHistogram;<BR>    pTableHistogram.Field = strPopField1;<BR>    pTableHistogram.Table = pTable;<BR>    pHistogram.GetHistogram(out dataValues, out dataFrequency);<BR>  <BR>  <BR>    pClassify = new EqualIntervalClass();<BR>    pClassify.SetHistogramData( dataValues, dataFrequency);<BR>    <BR>     <BR>    <FONT color=#f70938>double [] Classes;<BR>    int numDesiredClasses = 3;<BR>    pClassify.Classify(ref numDesiredClasses);    <BR>    Classes =(double[])pClassify.ClassBreaks;<BR>    //Classes = pClassify.ClassBreaks as double[];<BR>    int ClassesCount = Classes.Length;<BR></FONT>    </P>
<P>    IClassBreaksRenderer pClassBreaksRenderer = new ClassBreaksRendererClass();<BR>    pClassBreaksRenderer.Field = strPopField1;<BR>    pClassBreaksRenderer.BreakCount = ClassesCount;<BR>    pClassBreaksRenderer.SortClassesAscending = true;</P>
<P>    IHsvColor pFromColor = new HsvColorClass();<BR>    pFromColor.Hue = 60  ;      <BR>    pFromColor.Saturation = 100;<BR>    pFromColor.Value = 96;</P>
<P>    IHsvColor pToColor = new HsvColorClass();<BR>    pToColor.Hue = 0;<BR>    pToColor.Saturation = 100;<BR>    pToColor.Value = 96;</P>
<P>    IAlgorithmicColorRamp pRamp = new AlgorithmicColorRampClass();<BR>    IEnumColors pEnumColors;<BR>    bool ok;</P>
<P>    pRamp.Algorithm = esriColorRampAlgorithm.esriHSVAlgorithm;<BR>    pRamp.FromColor = pFromColor;<BR>    pRamp.ToColor = pToColor;<BR>    pRamp.Size = ClassesCount;<BR>    pRamp.CreateRamp(out ok);<BR>    pEnumColors = pRamp.Colors;</P>
<P>    IColor pColor;<BR>    ISimpleFillSymbol pFillSymbol;<BR>    int breakIndex;</P>
<P>    for(breakIndex =0;breakIndex<ClassesCount;ClassesCount++)<BR>    {<BR>     pColor = pEnumColors.Next();<BR>     pFillSymbol = new SimpleFillSymbolClass();<BR>     pFillSymbol.Color = pColor;<BR>     pFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;<BR>     pClassBreaksRenderer.set_Symbol(breakIndex, pFillSymbol as ISymbol);<BR>     pClassBreaksRenderer.set_Break(breakIndex, (double)Classes[breakIndex + 1]);<BR>    }<BR>    m_pGeoFeatureLayer.Renderer = pClassBreaksRenderer as IFeatureRenderer;<BR>    this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,null,null);<BR></P>
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
hahaaluo
路人甲
路人甲
  • 注册日期2006-08-05
  • 发帖数146
  • QQ
  • 铜币591枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2006-09-07 10:20
<P>上面这位大哥 ,为什么还是同样的错误呢 ???</P>
<P>可以帮忙看看吗 ??</P>
<P>编译是可以通过,但是运行时就不可以了</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部