在ArcGIS Server中创建图例代码
2010-05-18 00:14
344 查看
以下代码为在ArcGIS Server中创建图例代码,不记得从哪里看到的了,修改了点,给大家看看
======================================================
IMapFunctionality mapFunctionality = Map1.GetFunctionality(0);//获取资源
IGISResource gisResource = mapFunctionality.Resource;
MapResourceLocal mapRsourceLocal = gisResource as MapResourceLocal;
// IMapServerObjects mapServerObjects = mapRsourceLocal.MapServer as IMapServerObjects;// 获取资源的SO
IServerContext serverContext = mapRsourceLocal.ServerContextInfo.ServerContext;//通过资源创建一个servercontext;
IMapServer mapServer = serverContext.ServerObject as IMapServer;// 使用IMapServer接口访问服务器对像SO;
IMapServerInfo mapInfo = mapServer.GetServerInfo(mapServer.DefaultMapName);
IMapDescription mapDesc = mapInfo.DefaultMapDescription;
IMapServerObjects mapServerObjects;
mapServerObjects = (IMapServerObjects)mapServer;
IMap map = mapServerObjects.get_Map(mapServer.DefaultMapName) as IMap ;
UID uid = serverContext.CreateObject("esriSystem.UID") as UID ;//注意这里的修改
uid.Value = "esriCarto.Legend";
ILegend legend = map.CreateMapSurround(uid, null) as ILegend ;
int i, itemCount;
itemCount = legend.ItemCount;
ILegendItem legendItem;
ILayer layer;
for (i = 0; i < itemCount; i++)
{
legendItem = legend.get_Item(itemCount - 1 - i);
layer = legendItem.Layer;
if (layer is IRasterLayer)
{
legend.RemoveItem(itemCount - 1 - i);
}
}
IImageType imageType=serverContext.CreateObject("esriCarto.ImageType") as IImageType ;
imageType.Format = esriImageFormat.esriImageJPG;
imageType.ReturnType = esriImageReturnType.esriImageReturnMimeData;
IImageDisplay imageDisp =serverContext.CreateObject("esriCarto.ImageDisplay") as IImageDisplay ;
imageDisp.Height = 0;
imageDisp.Width = 150;
imageDisp.DeviceResolution = 96;
IImageDescription imageDesc =serverContext.CreateObject("esriCarto.ImageDescription") as IImageDescription ;
imageDesc.Type = imageType;
imageDesc.Display = imageDisp;
IImageDisplay mapDisplay = serverContext.CreateObject("esriCarto.ImageDisplay") as IImageDisplay;
mapDisplay.Height = 500;
mapDisplay.Width = 500;
mapDisplay.DeviceResolution = 96;
IMapServerLayout mapServerLayout;
mapServerLayout = (IMapServerLayout)mapServer;
IImageResult imageResult;
imageResult = mapServerLayout.ExportLegend(legend, mapDesc, mapDisplay, null, imageDesc);
Image.imgeurl=imageResult .URL;//Image display
======================================================
IMapFunctionality mapFunctionality = Map1.GetFunctionality(0);//获取资源
IGISResource gisResource = mapFunctionality.Resource;
MapResourceLocal mapRsourceLocal = gisResource as MapResourceLocal;
// IMapServerObjects mapServerObjects = mapRsourceLocal.MapServer as IMapServerObjects;// 获取资源的SO
IServerContext serverContext = mapRsourceLocal.ServerContextInfo.ServerContext;//通过资源创建一个servercontext;
IMapServer mapServer = serverContext.ServerObject as IMapServer;// 使用IMapServer接口访问服务器对像SO;
IMapServerInfo mapInfo = mapServer.GetServerInfo(mapServer.DefaultMapName);
IMapDescription mapDesc = mapInfo.DefaultMapDescription;
IMapServerObjects mapServerObjects;
mapServerObjects = (IMapServerObjects)mapServer;
IMap map = mapServerObjects.get_Map(mapServer.DefaultMapName) as IMap ;
UID uid = serverContext.CreateObject("esriSystem.UID") as UID ;//注意这里的修改
uid.Value = "esriCarto.Legend";
ILegend legend = map.CreateMapSurround(uid, null) as ILegend ;
int i, itemCount;
itemCount = legend.ItemCount;
ILegendItem legendItem;
ILayer layer;
for (i = 0; i < itemCount; i++)
{
legendItem = legend.get_Item(itemCount - 1 - i);
layer = legendItem.Layer;
if (layer is IRasterLayer)
{
legend.RemoveItem(itemCount - 1 - i);
}
}
IImageType imageType=serverContext.CreateObject("esriCarto.ImageType") as IImageType ;
imageType.Format = esriImageFormat.esriImageJPG;
imageType.ReturnType = esriImageReturnType.esriImageReturnMimeData;
IImageDisplay imageDisp =serverContext.CreateObject("esriCarto.ImageDisplay") as IImageDisplay ;
imageDisp.Height = 0;
imageDisp.Width = 150;
imageDisp.DeviceResolution = 96;
IImageDescription imageDesc =serverContext.CreateObject("esriCarto.ImageDescription") as IImageDescription ;
imageDesc.Type = imageType;
imageDesc.Display = imageDisp;
IImageDisplay mapDisplay = serverContext.CreateObject("esriCarto.ImageDisplay") as IImageDisplay;
mapDisplay.Height = 500;
mapDisplay.Width = 500;
mapDisplay.DeviceResolution = 96;
IMapServerLayout mapServerLayout;
mapServerLayout = (IMapServerLayout)mapServer;
IImageResult imageResult;
imageResult = mapServerLayout.ExportLegend(legend, mapDesc, mapDisplay, null, imageDesc);
Image.imgeurl=imageResult .URL;//Image display
相关文章推荐
- ArcGIS Server代码动态创建发布服务(MapServer,ImageServer)
- ArcGIS Server代码动态创建发布服务(MapServer,ImageServer)
- jdt 创建java工程,生成代码,运行main方法
- MOSS User Profile(四):代码创建用户配置文件
- 该文件没有程序与之关联来执行该操作,请在控制面板的文件夹选项中创建关联 解决代码
- hibernate持久层,java代码创建表
- 用代码创建Android视图
- Magento代码之订单创建流程
- ios中创建可以拖动的view原理和实现详解(含代码)
- 使用NPOI创建当天Excel文件代码
- 使用 JavaScript 创建可维护的幻灯片效果代码第1/3页
- CSS创建三角形代码
- [完整代码]创建不受数据库限制的报表 VB.Net 版本 -2
- php imagecreatetruecolor 创建高清和透明图片代码小结
- SSM框架——使用MyBatis Genera 4000 tor自动创建代码
- 【TypeScript学习笔记】代码中反引号的作用-多行文本输入创建多行字符串
- 【怎样写代码】向现有类型“添加”方法 -- 扩展方法(三):为枚举类型创建方法
- Oracle12c安装时的问题:创建TableSpace和用户的时候与11g的代码命令一样
- Ext通过按钮创建一个Window实例代码
- 在Java导出数据创建excel表时候出现json对话框或者出现一个带有js代码的东西