在ArcGIS Server中创建图例代码

以下代码为在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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值