创建ArcGIS Engine自定义工具类,生成地图元素

调用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中的样式文件来进行选择,能够达到自定义样式的效果。

这三种的添加方法具体可以参考下面的链接。

选择指北针样式如下图所示:

创建ArcGIS Engine自定义工具类,生成地图元素_第1张图片


参考:

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

你可能感兴趣的:(地图,arcgis)