ArcServer 导出图片
来源:互联网 发布:计算机图形学编程实例 编辑:程序博客网 时间:2024/05/25 16:37
/// <summary>
/// Exports the current extent & visible layers on mapctrl to the specified format and the specified size.
/// </summary>
/// <param name="mapctrl">Map control to export layout from</param>
/// <param name="Size">Graphic Size</param>
/// <param name="Format">Graphic Ouput Format (JPG,PDF,PNG)</param>
/// <returns>URL to exported map layout</returns>
public string MapExportLayout(ESRI.ArcGIS.ADF.Web.UI.WebControls.Map mapctrl, string Size, string Format)
{
ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapFunctionality ags_mf = (ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapFunctionality)mapctrl.GetFunctionality(1);
ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapResourceLocal ags_mr = (ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.MapResourceLocal)ags_mf.Resource;
// Get Server Object from Server Context
ESRI.ArcGIS.Server.IServerContext SC = ags_mr.ServerContextInfo.ServerContext;
//get map description
ESRI.ArcGIS.ADF.ArcGISServer.MapDescription CurADFMD = ags_mf.MapDescription;
//update extent to current extent
CurADFMD.MapArea.Extent = ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.FromAdfEnvelope(mapctrl.Extent);
//update layers to current layers on/off
for (int i = 0; i < CurADFMD.LayerDescriptions.Length; i++)
{
ESRI.ArcGIS.ADF.ArcGISServer.LayerDescription Layer = (ESRI.ArcGIS.ADF.ArcGISServer.LayerDescription)CurADFMD.LayerDescriptions.GetValue(i);
Layer.Visible = ags_mf.GetLayerVisibility(Layer.LayerID.ToString());
}
//convert map description to carto com map description
ESRI.ArcGIS.Carto.MapDescription CurCartMD = (ESRI.ArcGIS.Carto.MapDescription)ESRI.ArcGIS.ADF.ArcGISServer.Converter.ValueObjectToComObject(CurADFMD, SC);
//Get Map Server obj
ESRI.ArcGIS.Carto.IMapServer MapServer = (ESRI.ArcGIS.Carto.IMapServer)SC.ServerObject;
ESRI.ArcGIS.Carto.IMapServerInfo MapServerInfo = (ESRI.ArcGIS.Carto.IMapServerInfo)MapServer.GetServerInfo(MapServer.DefaultMapName);
ESRI.ArcGIS.Carto.IMapDescription MD = (ESRI.ArcGIS.Carto.IMapDescription)MapServerInfo.DefaultMapDescription;
// Create Image Type obj
ESRI.ArcGIS.Carto.IImageType ImgType = SC.CreateObject("esriCarto.ImageType") as ESRI.ArcGIS.Carto.IImageType;
// Create Image Display Obj
ESRI.ArcGIS.Carto.IImageDisplay ImgDisplay = SC.CreateObject("esriCarto.ImageDisplay") as ESRI.ArcGIS.Carto.IImageDisplay;
// Create Image Description Obj
ESRI.ArcGIS.Carto.IImageDescription ImgDesc = SC.CreateObject("esriCarto.ImageDescription") as ESRI.ArcGIS.Carto.IImageDescription;
//Set Image Format
switch (Format)
{
case "PDF":
ImgType.Format = ESRI.ArcGIS.Carto.esriImageFormat.esriImagePDF;
break;
case "JPG":
ImgType.Format = ESRI.ArcGIS.Carto.esriImageFormat.esriImageJPG;
break;
case "PNG":
ImgType.Format = ESRI.ArcGIS.Carto.esriImageFormat.esriImagePNG;
break;
}
ImgType.ReturnType = ESRI.ArcGIS.Carto.esriImageReturnType.esriImageReturnURL;
//Set Image Size
switch (Size)
{
case "800x600":
ImgDisplay.Height = 600;
ImgDisplay.Width = 800;
break;
case "1024x768":
ImgDisplay.Height = 768;
ImgDisplay.Width = 1024;
break;
case "1280x720":
ImgDisplay.Height = 720;
ImgDisplay.Width = 1280;
break;
case "1280x1024":
ImgDisplay.Height = 1024;
ImgDisplay.Width = 1280;
break;
}
try
{
ImgDisplay.DeviceResolution = double.Parse(Size);
}
catch (Exception e)
{
ImgDisplay.DeviceResolution = 90;
}
ImgDesc.Type = ImgType;
ImgDesc.Display = ImgDisplay;
//Get Map Layout
ESRI.ArcGIS.Carto.IMapServerLayout MapLayout = MapServer as ESRI.ArcGIS.Carto.IMapServerLayout;
ESRI.ArcGIS.Carto.IPageDescription PD = MapLayout.DefaultPageDescription;
//Get default map desc
ESRI.ArcGIS.Carto.IMapFrameDescription MapFrameDesc = PD.MapFrames.get_Element(0);
ESRI.ArcGIS.Carto.IMapDescription DefMapDesc = MapFrameDesc.MapDescription;
//Set default Map Description to current Map description, assuming we use first map frame here, change if necessary
PD.MapFrames.get_Element(0).MapDescription = CurCartMD;
//Export Layout
ESRI.ArcGIS.Carto.ILayoutImage LayoutImg = MapLayout.ExportLayout(PD, ImgDesc);
//Return URL to Image
return LayoutImg.URL;
- ArcServer 导出图片
- Arcserver 9.3/
- ArcServer 概述
- flex arcserver
- Arcserver如何发布Featureserver(arcserver、sde)
- 【Esri ArcServer】ArcServer发布GP服务
- GeoServer与ArcServer对比
- ArcServer 10.1 发布GP工具
- ArcServer开发方式(转载)
- 图片的导入导出
- Word图片导出方法
- Flex图片导出[转]
- 导出word图片
- flex图片导出
- fusioncharts 导出图片
- 导出图片备忘
- [MSCHART]导出图片功能
- QwtPlotRenderer renderDocument() 导出图片
- 一个老程序员的工作经历
- java.lang.NoClassDefFoundError: javax/transaction/Synchronization是因为j2ee包没有放进path
- window.showModalDialog与window.open全屏显示
- 计划一下我的第四个工作年度,如果我还在现有公司工作的话.该计划可能被实施
- php写入数据库时的注意:
- ArcServer 导出图片
- CString 在Unicode代码下转char的方法
- jboss.home" value="D:/jboss" 要用左斜杠
- MyEclipse里创建ZK的开发环境
- 格力高主页UuuuuuuuP!
- VBA概述之在Office产品中创建自己的应用程序
- 软件的本质
- FC12 FC11 FC10 的XManager telnet ftp 设置,保证绝对有效
- IE6 Select元素无法被div等元素覆盖的bug解决办法