程序人生
路人甲
路人甲
  • 注册日期2008-08-22
  • 发帖数2
  • QQ
  • 铜币109枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1251回复:1

[求助]ARCGIS地图渲染问题

楼主#
更多 发布于:2008-09-16 13:27
<P>就是点个按钮后,地图上能根据不同的区域显示不同的颜色.而且颜色上方显示区域名字和 计算出来的结果能在地图上用柱状图显示.</P>
<P>如何代码实现?</P>
喜欢0 评分0
wujinpu
路人甲
路人甲
  • 注册日期2007-11-18
  • 发帖数4
  • QQ
  • 铜币120枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2008-11-20 17:36
<P> //柱状图渲染<BR>        public IArray BarChartRenderer()<BR>        {<BR>            IArray pArray = new ArrayClass();<BR>            int layerindex = this.layerindex();<BR>            if (layerindex == -1)<BR>                return null;<BR>            IFeatureLayer pFeatureLayer = (IFeatureLayer)axMapControl1.get_Layer(layerindex);<BR>            IGeoFeatureLayer pGeoFeatureLayer = pFeatureLayer as IGeoFeatureLayer;<BR>            IChartRenderer pChartRenderer = new ChartRendererClass() as IChartRenderer;<BR>            IRendererFields pRendererField = (IRendererFields)pChartRenderer;<BR>            pRendererField.AddField("CASECOUNT", "CASECOUNT");<BR>            IBarChartSymbol pBarChartSymbol = (IBarChartSymbol)new BarChartSymbolClass();<BR>            pBarChartSymbol.Width = 6;</P>
<P>            IChartSymbol pChartSymbol = (IChartSymbol)pBarChartSymbol;<BR>            pChartSymbol.MaxValue = 2000;</P>
<P>            IMarkerSymbol pMarkerSymbol = (IMarkerSymbol)pBarChartSymbol;<BR>            pMarkerSymbol.Size = 25;</P>
<P>            ISymbolArray pSymbolArray = (ISymbolArray)pBarChartSymbol;</P>
<P>            IFillSymbol pFillSymbol = (IFillSymbol)new SimpleFillSymbolClass();<BR>            pFillSymbol.Color = GetRGBColor(213, 212, 252);<BR>            pSymbolArray.AddSymbol((ISymbol)pFillSymbol);<BR>            pFillSymbol = (IFillSymbol)new SimpleFillSymbolClass();<BR>            pFillSymbol.Color = GetRGBColor(239, 228, 190);</P>
<P>            pChartRenderer.ChartSymbol = (IChartSymbol)pBarChartSymbol;<BR>            pChartRenderer.BaseSymbol = (ISymbol)pFillSymbol;<BR>            pChartRenderer.Label = "CASECOUNT";<BR>            //pChartRenderer.UseOverposter = false;</P>
<P>            pGeoFeatureLayer.Renderer = pChartRenderer as IFeatureRenderer;<BR>            pGeoFeatureLayer.DisplayField = "NAME";<BR>            pGeoFeatureLayer.DisplayAnnotation = true;<BR>            axMapControl1.ActiveView.Extent = fullmap_enve;<BR>            axMapControl1.ActiveView.Refresh();<BR>            Marshal.ReleaseComObject(pFillSymbol);<BR>            pFillSymbol = null;<BR>            Marshal.ReleaseComObject(pBarChartSymbol);<BR>            pBarChartSymbol = null;<BR>            Marshal.ReleaseComObject(pChartRenderer);<BR>            pChartRenderer = null;</P>
<P>            IQueryFilter pQueryFilter = new QueryFilterClass();<BR>            IFeatureClass pFeatureClass = pGeoFeatureLayer.FeatureClass;<BR>            IFeatureCursor pFeatureCursor = pFeatureClass.Search(pQueryFilter, false);<BR>            IFeature pFeature = pFeatureCursor.NextFeature();<BR>            int codeValue;<BR>            while (pFeature != null)<BR>            {<BR>                int index = pFeature.Fields.FindField("CASECOUNT");<BR>                if (index >= 0)<BR>                {<BR>                    codeValue = int.Parse(pFeature.get_Value(index).ToString());<BR>                    pArray.Add(pFeature.get_Value(pFeature.Fields.FindField("NAME")).ToString() + "|" + codeValue.ToString());<BR>                }<BR>                pFeature = pFeatureCursor.NextFeature();<BR>            }<BR>            return pArray;<BR>        }</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部