- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
开源SharpMap实例讲解(四)精要
开源SharpMap实例讲解(四) 专题图表达 专题图表达 实例讲解(一),饼状专题图 实例讲解(二),分级设色专题图 实例讲解(三),柱状专题图 实例讲解-饼状专题图 简介 代码剖析 代码修改 饼状专题图-简介 PieCharts.aspx PieCharts.aspx.cs 饼状专题图-代码剖析 //Create Pie Layer //添加“饼状图” 按钮,该代码放在其Click事件中。 SharpMap.Layers.VectorLayer pieLayer = new SharpMap.Layers.VectorLayer(Pie charts); pieLayer.DataSource = (myMap.Layers[0] as SharpMap.Layers.VectorLayer).DataSource; SharpMap.Rendering.Thematics.CustomTheme iTheme ; iTheme = new SharpMap.Rendering.Thematics.CustomTheme(GetCountryStyle); pieLayer.Theme = iTheme; myMap.Layers.Add(pieLayer); 解读GetCountryStyle private SharpMap.Styles.VectorStyle GetCountryStyle(SharpMap.Data.FeatureDataRow row) { SharpMap.Styles.VectorStyle s = new SharpMap.Styles.VectorStyle(); s.Fill = new SolidBrush(Color.Green); s.Symbol = GetPieChart(row); return s; } 解读GetPieChart 解读GetPieChart 饼状专题图——重点 创建专题图的一般流程 绘制Pie关键函数是哪个? 若需要与依据字段数据绘制Pie图形,需修改何处? 如何修改? 饼状专题图——重点 创建专题图的一般流程 创建专题图层,设置其依托的图层数据 创建 CustomTheme对象,重载GetCountryStyle函数,编写其代码。编写GetPieChart中的代码。 将创建 CustomTheme对象赋值给专题图层 将专题图层加载到地图中,刷新显示 关注重点函数 GetPieChart函数 修改GetPieChart中的代码 饼状专题图-代码修改 以row中[2] [3] [4]字段数据,进行绘制pie图。 Value1 = Convert.ToDouble(row[2]); Value2 = Convert.ToDouble(row[3]); Value3 = Convert.ToDouble(row[4]); 获取值进行代码修改。 实例讲解(二) -分级设色专题图 简介 代码剖析 代码修改 Maphelper.cs中两个函数 InitializeGradientMap设计分级显示 InitializeMap加载地图数据 public static SharpMap.Map InitializeGradientMap(System.Drawing.Size size) { //初始化地图数据 SharpMap.Map map = InitializeMap(size); //设置 countries layer的 Population density作为分级 //创建min and max 样式 SharpMap.Styles.VectorStyle min = new SharpMap.Styles.VectorStyle(); SharpMap.Styles.VectorStyle max = new SharpMap.Styles.VectorStyle(); //创建专题从min(0) and max(400) SharpMap.Rendering.Thematics.GradientTheme popdens = new SharpMap.Rendering.Thematics.GradientTheme (PopDens, 0, 400, min, max); //运用颜色带 popdens.FillColorBlend = SharpMap.Rendering.Thematics.ColorBlend.Rainbow5; ……………………… //将分级专题 赋值给第一个图层 (map.Layers[0]
文档评论(0)