调用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