您的位置:首页 > 编程语言

在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: