在ArcMap的专题图制作中,我们对Classification并不陌生(如图)。这主要是对应于ClassBreak类型的地图渲染而言的。它可以用来动态设置分类的等级数目,而且可以使用鼠标对代表Break数值大小的蓝色线进行拖动,以调整分级值的大小,甚至可以显示某区间内样本值的分布状况。
<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 414pt; HEIGHT: 291pt" type="#_x0000_t75"><imagedata src="file:///F:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image001.png" o:title="未命名"></imagedata></shape>
AO中没有提供现成的接口用来实现该工具。但可以使用三种方式,实现具有简单分类和动态调节值大小的工具。
第一种思路:修改用于绘图的开源控件,例如ZedGraph等,本来也想按照这个方法实现,但是有点懒的看别人的代码了:(
第二种思路:在MapControl上,添加LineElement,用LineElement代表制的大小,然后用IDisplayFeedback接口完成Element的移动,这样实现的难度最小,但是并不灵活,因为,假如开发工作并没有采用ArcGIS Engine的话,我们总不能为了做出这么个工具,就花上十多万的银子吧?
第三种思路:适用.Net的GDI+直接在窗体上绘制出来。这样的实现方式最灵活,不受所采用的组件的影响。
关键代码:
效果:
<shape id="_x0000_i1026" style="WIDTH: 423pt; HEIGHT: 324pt" type="#_x0000_t75"><imagedata src="file:///F:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/04/clip_image003.png" o:title="未命名"></imagedata></shape>
分享到:
相关推荐
使用UpdateLayerWindow,gdi+实现无标题栏无边框半透明阴影窗口使用UpdateLayerWindow,gdi+实现无标题栏无边框半透明阴影窗口使用UpdateLayerWindow,gdi+实现无标题栏无边框半透明阴影窗口使用UpdateLayerWindow,...
利用GDI+绘图,实现了图片动态改变位置及大小了功能,使用双缓存防止闪烁
C# GDI+实现的网格绘制功能,同时,项目包含了GDI+的基本功能介绍和使用项目,工程使用vs2012编写,已通过编译。
纯 GDI+ 实现3D照相机视角变换 材质贴图等等,绝对物有所值
C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战
GDI+绘制动态曲线图演示,实现利用随机数据绘制成一段时间的实时动态的显示
使用GDi+实现单行Edit的一些功能: 鼠标移动到Edit区域边框变化,鼠标指针变化 区域获得焦点后(在区域点击左键)可以进行输入以及对Caret定位,Caret的位置就是插入字符的位置 字符超出范围字符缩进等等
本书从介绍GDI+Windows图形程序设计的基本知识开始,其核心是对一些实际问题的指导,包括如何使用Windows Forms及如何优化GDI+的性能。本书通过一些例子来说明如何开发真实世界的工具,如GDI+Painter、GDI+Editro...
GDI+ PNG 动态时钟 带特效 异形 带蝴蝶的 GDI+自绘时钟
GDI+的说明 GDI+的说明 GDI+的说明 GDI+的说明
GDI+开发的帮助文档,讲得清晰浅显,而且是中文的.如果学习GDI+开发的话,特别是初学者,强烈推荐下载. 对于初学者,还有一个问题就是,如果想要进行GDI+开发, 需要下载一个GDI+的开发包(SDK). 网上搜到的一般只包含一个...
Visual C++6.0使用GDI+的一般方法 1. 载解压GDI+开发包; 2. 正确设置include & lib 目录; 3. stdafx.h 添加: #ifndef ULONG_PTR #define ULONG_PTR unsigned long* #endif #include 4. 程序中添加GDI+的...
VB6&GDI+实现精准中英字符测绘,可自定义行距字距。本人写的试验代码,有大量BUG。测绘之中有少许的浮点误差——这是字体设计单位浮点计算造成的,不可避免. 因为代码中很少注释,我在这里说一下关键:重点是GDI+的...
GDI+开发包,解压文件,并将其中的Includes和Lib中的文件复制到VS安装目录中VC98目录下的Includes和Lib文件夹中
MFC使用GDI+编程设置
GDI+SDK参考 GDI+SDK参考 GDI+SDK参考 GDI+SDK参考 GDI+SDK参考
使用GDI+,完美实现符合商业需要的3D效果的饼状图
4.2 在GDI+ 中使用钢笔 4.3 使用钢笔进行变形 4.4 使用画笔进行变形 4.5 系统钢笔和系统画笔 4.6 一个真实世界的例子 ——在GDI+ Painter应用程序中添加颜色、钢笔和画笔 总结 第5章 颜色、字体和文本 5.1 ...