创建ArcGIS Engine自定义工具类,生成地图元素(转载)
转自:http://blog.csdn.net/freeWayWalker/article/details/25633859
调用ArcObjects对象,创建ArcGIS Engine自定义工具类,来生成地图元素。一些地图元素与数据框中的数据相关。此类元素包括图名、指北针、比例尺、比例文本和图例。
ArcObjects中的MapSurround 对象是与一个地图对象关联的,用于修饰地图的辅助图形元素对象。 比如比例尺,比例尺文本,图例,指北针...
MapSurround对象由MapSurroundFrame对象管理。所有的MapSurround对象都被添加在布局视图后,每一个MapSurround对象可以通过IMap接口的MapSurrounds属性的索引值所获取;也可以通过IMap接口的MapSurroundCount来遍历布局视图上的所有MapSurround对象。
所有的MapSurround对象都实现了IMapSurround接口,使用该接口的Name属性可以获得MapSurround对象的名称,通过IMapSurround的FitToBound方法可以设置一个MapSurround对象的大小。同时,MapSurround类也实现了IMapSurroundEvents接口,可以用来触发MapSurround相关事件,如:AfterDraw,BeforeDraw,ContensChange。
添加图名,需要捕捉到鼠标点击到pageLayoutControl视图上的坐标点,然后在该坐标点处生成图名。图名可以由用户输入来确定。
生成图名的代码如下:
- public void AddTextElement(AxPageLayoutControl PageLayoutControl,double x,double y,string textName)
- {
- IPageLayout pPageLayout;
- IActiveView pAV;
- IGraphicsContainer pGraphicsContainer;
- IPoint pPoint;
- ITextElement pTextElement;
- IElement pElement;
- ITextSymbol pTextSymbol;
- IRgbColor pColor;
- pPageLayout = PageLayoutControl.PageLayout;
- pAV = (IActiveView)pPageLayout;
- pGraphicsContainer = (IGraphicsContainer)pPageLayout;
- pTextElement = new TextElementClass();
- IFontDisp pFont = new StdFontClass() as IFontDisp;
- pFont.Bold = true;
- pFont.Name = "宋体";
- pFont.Size = 13;
- pColor = new RgbColorClass();
- pColor.Red = 255;
- pTextSymbol = new TextSymbolClass();
- pTextSymbol.Color = (IColor)pColor;
- pTextSymbol.Font = pFont;
- pTextElement.Text = textName;
- pTextElement.Symbol = pTextSymbol;
- pPoint = new PointClass();
- pPoint.X = x;
- pPoint.Y = y;
- pElement = (IElement)pTextElement;
- pElement.Geometry = (IGeometry)pPoint;
- pGraphicsContainer.AddElement(pElement, 0);
- pAV.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
- }
添加指北针、比例尺和比例文本,可以调用ESRI.ServerStyle中的样式文件来进行选择,能够达到自定义样式的效果。
这三种的添加方法具体可以参考下面的链接。
选择指北针样式如下图所示:
参考:
Sample: Add map surrounds using the SymbologyControl http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/d/000100000455000000.htm
Add North Arrow http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/0049/00490000004w000000.htm
Add Scale Bar http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/0049/004900000043000000.htm
Add Legend http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/0049/00490000006w000000.htm
ArcGIS Engine自定义工具类,实现添加图名,比例尺,指北针 http://blog.sina.com.cn/s/blog_6e51df7f010129ka.html
- 顶
- 0
- 踩
浙公网安备 33010602011771号