`
lorry1113
  • 浏览: 264537 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

arcobjects 图例

    博客分类:
  • GIS
J# 
阅读更多
public void exportLegend(IServerContext serverContext, IMapServer pMapServer ){
	    try
	    { 
	        IMapServerObjects mapServerObjects = (IMapServerObjects)pMapServer; 
	        IMap map = (IMap)mapServerObjects.getMap(pMapServer.getDefaultMapName());
	        
	        UID uid = (UID)serverContext.createObject("esriSystem.UID");
            	uid.setValue("esriCarto.Legend");
            ILegend legend1 = (ILegend) map.createMapSurround(uid, null );
            		legend1.setTitle("图例");
            for(int i=0; i<legend1.getItemCount();i++){
	        	ILegendItem lItem = legend1.getItem(i);
	        	ILayer layer = lItem.getLayer();
	        	//过滤掉标注点图层
	        	if(layer.getName().indexOf("标注点")>-1){
	        		legend1.removeItem(i);
	        	}	      
            }
           
	        
	        //获取该地图的layout对象 
	        IMapServerLayout layout = (IMapServerLayout)pMapServer; 
	        //设置图片类型
	        IImageType it = (IImageType)serverContext.createObject("esriCarto.ImageType");
	                   it.setFormat(esriImageFormat.esriImagePNG32) ;
	                   it.setReturnType(esriImageReturnType.esriImageReturnURL); 
	        //设置图片显示大小
	        IImageDisplay idisp = (IImageDisplay)serverContext.createObject("esriCarto.ImageDisplay");
	                      idisp.setHeight(1000);
	                      idisp.setWidth(400);
	                      idisp.setDeviceResolution(150);//DPI 每个英寸上所能印刷的网点数(Dot Per Inch)。
	                      //设置图片显示大小
	        IImageDisplay idisp1 = (IImageDisplay)serverContext.createObject("esriCarto.ImageDisplay");
	                      idisp1.setHeight(0);
	                      idisp1.setWidth(0);
	                      idisp1.setDeviceResolution(150);//DPI 每个英寸上所能印刷的网点数(Dot Per Inch)
	        //图片描述
	        IImageDescription pID = (IImageDescription)serverContext.createObject("esriCarto.ImageDescription");
	        				  pID.setDisplay(idisp1);
	        				  pID.setType(it); 
	        //设置图例
	        ILegend legend = (ILegend)serverContext.createObject("esriCarto.Legend");
	        for(int i=0; i<legend.getItemCount();i++){
	        	ILegendItem lItem = legend.getItem(i);
	        	ILayer layer = lItem.getLayer();
	        	System.out.println(layer.getName());
	        }
	        legend.setTitle("图例") ; 

	        IMapServerInfo pMapServerInfo = pMapServer.getServerInfo(pMapServer.getDefaultMapName());
	        IMapDescription pMD = pMapServerInfo.getDefaultMapDescription();
	       /* IMapLayerInfos mapLayerInfos = pMapServerInfo.getMapLayerInfos();
	        for(int j=0; j<mapLayerInfos.getCount();j++){
	        	IMapLayerInfo layerInfo = mapLayerInfos.getElement(j);
	        	System.out.println(layerInfo.getName());
	        	System.out.println("---------------------------------");
	        }*/
	        IImageResult img = layout.exportLegend(legend1, pMD, idisp, null, pID);
	        //释放ServerContext
	        serverContext = null;
	        System.out.println(img.getURL());
	    }catch (AutomationException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
分享到:
评论

相关推荐

    ArcObjects GIS应用开发-基于C#

    - **页面布局控制**:使用`PageLayoutControl`对象进行地图的布局设计,包括添加图例、比例尺等元素。 - **图层控制**:利用`TOCControl`对象对图层进行管理和操作,如添加、删除图层等。 - **工具栏控制**:自定义...

    论文研究-基于ArcObjects组件式扩展的标准化地图制图实现.pdf

    实现标准化地图制图,需要考虑地图设计的要素和规则,比如符号化、色彩使用、图例、比例尺、投影方式等,同时也要符合相关的国家标准和行业规范。 在实现标准化地图制图的过程中,ArcObjects组件式扩展方法展现了...

    ArcObjects应用开发(C#版)

    开发者可以利用Map和MapDocument类来加载地图文档,控制图层的可见性,调整比例尺,以及添加图例和比例尺等地图元素。C#的事件驱动编程模型使得响应用户交互变得更加简单。 3. **空间分析**:ArcObjects提供了丰富...

    ArcObjects GIS应用开发——基于C#.NET

    5. **地图的组成**:地图不仅仅包含数据,还包括图层、比例尺、方向、图例等元素。开发者将学习如何创建和管理这些元素,以及如何控制它们在地图上的显示。 6. **空间数据的符号化**:符号化是将数据可视化的关键...

    AO接口导出地图服务图例

    本文将介绍如何利用AO接口(ArcObjects)来导出地图服务的图例。 首先,我们需要连接到ArcGIS Server。在示例代码中,使用`ESRI.ArcGIS.Server.GISServerConnectionClass`类创建一个服务器连接,并连接到...

    ArcObjects GIS应用开发--基于C#.NET--v3.1.pdf

    PageLayoutControl控件用于布局和设计地图打印页面,可以预览和编辑地图布局元素,如比例尺、图例、注记等。 #### 3.3 TOCControl控件 TOCControl控件用于管理图层的显示和属性,类似于ArcMap中的“Table of ...

    ArcObjects GIS应用开发——基于C#.NET.pdf

    - **页面布局**:用于创建复杂的地图布局,如添加比例尺、图例、北方向标等。 - **与MapControl的区别**:PageLayoutControl更侧重于最终的地图输出效果。 ##### 3.3 TOCControl控件 - **图层组织**:提供了一种...

    ArcObjects_GIS应用开发—基于C_.NET.pdf

    除了上述几种主要的控件外,ArcObjects还提供了许多其他的控件,如图例控件、属性表控件等。 **3.6.2 事件处理** 事件处理是指对控件产生的事件进行响应,通过事件处理可以实现更为复杂的逻辑。 **3.6.3 响应用户...

    ArcObjects GIS 应用开发 基于 C#.NET

    - **PageLayoutControl**:用于创建地图布局,包含图例、比例尺等元素。 - **IApplication** 和 **IMap** 接口:提供对ArcGIS Desktop应用程序和地图对象的访问。 - **ILayer** 和 **IFeatureLayer**:表示地图上的...

    ArcObjects GIS应用开发-基于C#.pdf

    它可以用来设计打印地图的布局,包括地图、图例、比例尺和指北针等元素。 ##### 3.3 TOCCONTROL组件 TOCControl组件用于管理图层的组织结构。通过该组件,可以实现图层的排序、分组和过滤等功能。 ##### 3.4 ...

    ArcGIS 二次开发--出图工具:添加图名、比例尺、指北针、图例,导出图片或文件、打印地图

    首先,我们需要了解ArcGIS的开发环境,通常我们会使用ArcObjects SDK,这是一个强大的组件库,包含了各种用于地图处理和分析的接口和类。通过这些接口,我们可以创建自定义的GIS应用,实现对地图的高级操作。 1. **...

    ArcObjects GIS应用开发—基于C#.NET

    PageLayoutControl提供了丰富的页面布局编辑功能,如添加标题、图例等。 ##### 3.3 TOCControl控件 - **3.3.1 TOCControl概述** TOCControl(Table Of Contents Control)控件用于显示地图的图层目录,可以方便...

    ArcObjects Gis 应用开发(C#.NET)第五章配套程序第一部分

    10. **数据可视化**:研究如何自定义地图的显示,包括颜色方案、比例尺、图例、注记等。 在压缩包中的"5-1"文件可能是源代码、示例程序或者相关资源,它将帮助我们实践上述理论知识,通过实际编码来巩固理解和提升...

    ArcObjects+GIS应用开发——基于C_[1].NET.pdf

    - **PageLayoutControl控件**:用于地图布局的设计,包括页面设置、图例、比例尺等元素。 - **PageLayout与MapControl的交互**:可以通过这两个控件之间的交互来实现地图布局的灵活编辑。 ##### 3.3 TOCControl控件...

Global site tag (gtag.js) - Google Analytics