阅读:2792回复:2
[求助]怎样生成曲线图
<P>arcengine9.2+ vs2005.net+ C#</P>
<P>情况是这样: 数据在orcale中, 每个地区有很多指标,每个指标都有好几年的数据值, 现在想将这些数据从orcale中读过来,然后以曲线图的形式(一个指标一条曲线,x轴是时间,y轴是指标值)显示到对应地区的地图上.</P> <P>arcgis好象没有提供绘制曲线图(像饼图渲染那样的)的功能.</P> <P>我的思路是: 将这些数据读过来后,每条曲线生成一个polyline,添加到一个新的图层中,全部添加完后,再渲染一下,将此图层visiable=true了.</P> <P>现在遇到的问题是: 选择部分指标生成曲线图没有问题, 选择有些指标就会报错,说: 对 COM 组件的调用返回了错误 HRESULT E_FAIL</P> <P>位置在: addCurveFeatCursor.InsertFeature(addCurveFeatBuffer); 这条语句.</P> <P>请问有人知道是什么原因造成的么? 或者有什么简单的方法来满足我的功能需求么,非常感谢!! 查了好多资料,都未果.... 我怀疑是不是因为对geodatabase中此图层的table操作过于频繁造成的结果....瞎猜的</P> <P>部分源码在二楼</P> |
|
1楼#
发布于:2007-10-08 10:16
回复:(ivan1983)[求助]怎样生成曲线图
<P> private void addCurve(IPolyline pPolyLine, string strTitle)<BR> {<BR> IFields pFlds;<BR> IGeoFeatureLayer addCurveGeoFeatlayer;<BR> IFeatureLayer addCurveFeatlayer;<BR> addCurveFeatlayer = (IFeatureLayer)MapControl1.get_Layer(0);<BR> for(int nLayer=0; nLayer<MapControl1.LayerCount; nLayer++)<BR> {<BR> addCurveFeatlayer = (IFeatureLayer)MapControl1.get_Layer(nLayer);<BR> if(addCurveFeatlayer.Name == "曲线图")<BR> {<BR> break;<BR> }<BR> }<BR> addCurveGeoFeatlayer = (IGeoFeatureLayer)addCurveFeatlayer;<BR> IFeatureClass addCurveFeatClass;<BR> addCurveFeatClass = addCurveFeatlayer.FeatureClass;<BR> IFeatureCursor addCurveFeatCursor;<BR> IFeatureBuffer addCurveFeatBuffer;</P>
<P> object Missing = Type.Missing;<BR> addCurveFeatCursor = addCurveFeatClass.Insert(true);<BR> addCurveFeatBuffer = addCurveFeatClass.CreateFeatureBuffer();</P> <P> IGeometryCollection pGeoColl; ;</P> <P> pGeoColl = (IGeometryCollection)pPolyLine;<BR> addCurveFeatBuffer.Shape = pPolyLine;<BR> pFlds = addCurveFeatClass.Fields;</P> <P> addCurveFeatBuffer.set_Value(pFlds.FindField("TypeName"), strTitle);<BR> addCurveFeatBuffer.set_Value(pFlds.FindField("xPoint"), pPolyLine.FromPoint.X);<BR> addCurveFeatCursor.InsertFeature(addCurveFeatBuffer);<BR> addCurveFeatCursor.Flush();<BR> System.Runtime.InteropServices.Marshal.ReleaseComObject(addCurveFeatCursor); }</P> <P>代码本身好象没有什么问题,因为我测试好多遍了,只是这个需要调用好多次来绘制所有的曲线有时才会出错...有时就OK. 晕死了</P> |
|
2楼#
发布于:2009-10-18 15:15
楼主的问题解决了吗,本人也遇到了这样的问题,需要调用数据库在AE中绘制,实现曲线拟合,不知道如何下手,希望给予方法和代码的帮助,感激不尽<img src="images/post/smile/dvbbs/em02.gif" />
|
|