ArcServer 导出图片

/// <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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ArcServer 10.7.1是一款企业级地理信息系统软件,旨在帮助用户收集、组织、分析、管理和共享地理空间数据。它提供了一系列工具,帮助用户进行地理空间分析、图形可视化和数据管理。 ArcServer 10.7.1包含多种组件和模块,包括ArcGIS 软件、ArcGIS Studio、ArcGIS ServerArcGIS Image ServerArcGIS Enterprise等。其中,ArcGIS 软件是一款用于地图绘制和地理信息分析的桌面软件,可帮助用户创建各种地图和使用地理工具进行分析。ArcGIS Server则是一款用于地理数据发布和共享的服务器软件,支持多种标准数据格式和多种网络协议,为用户提供了一种简单而又高效的数据发布、共享和使用的方式。 ArcGIS Image Server是一款用于管理和处理遥感图像数据的软件,可以高效地处理大量的遥感数据,提高遥感数据处理的效率和质量。ArcGIS Enterprise主要是为了提供更强大的管理和扩展性,支持云环境下的部署和运行,适合用于大型组织和企业级应用场景。 总的来说,ArcServer 10.7.1是一套功能丰富、用于处理地理空间数据的软件,适合用于各种应用场景,包括地图绘制、地理信息分析、遥感数据处理和数据共享等。 ### 回答2: ArcGIS Server是一款由Esri公司开发的企业级GIS软件,可用于构建和运行GIS Web服务,实现数据查询、分析和可视化等功能。ArcGIS Server 10.7.1是最新版本,其全套软件包括ArcGIS ServerArcGIS Web Adaptor、ArcGIS Enterprise Portal、ArcGIS Data Store和ArcGIS Pro等。其中,ArcGIS Server是核心组件,提供了地图和数据服务、GIS计算和分析功能,支持REST和SOAP协议,可部署在Windows和Linux等操作系统上;ArcGIS Web Adaptor是一个Web应用程序,可将ArcGIS Server发布的地图和服务发布到互联网或内部网络,提供跨平台访问;ArcGIS Enterprise Portal是一个企业门户,可用于搜索、发现和共享数据、应用程序和GIS资源,支持多用户协作;ArcGIS Data Store是一种数据存储技术,可协同工作空间来存储和管理地图和服务数据;ArcGIS Pro是桌面GIS应用程序,可用于创建、编辑、分析和可视化GIS数据。综上所述,ArcGIS Server 10.7.1全套软件具有丰富的GIS功能和多平台支持,可满足企业级GIS应用需求。 ### 回答3: ArcGIS Server 10.7.1 是一种基于 Web 的 GIS (地理信息系统) 平台,提供了一系列工具和服务,可以处理和管理空间数据。这个平台允许组织在公司网络、云环境或在互联网上发布、共享和管理 GIS 数据和应用程序。 ArcGIS Server 10.7.1 软件包括以下组件:ArcGIS Server Manager、ArcGIS Server Enterprise、ArcGIS GeoEvent ServerArcGIS Image ServerArcGIS GeoAnalytics ServerArcGIS Business Analyst ServerArcGIS Data Store。 ArcGIS Server Manager 是一个 Web 应用程序,用于管理和监控 ArcGIS Server。该应用程序允许您创建和管理站点、服务、站点安全性和内容共享等。 ArcGIS Server Enterprise 是一个可扩展的高性能服务,允许在组织内部或在云环境中创建和发布 GIS 服务。这个组件还提供了自动扩展和负载平衡等功能,以确保在组织规模发生变化时,保持自适应性和高可靠性。 ArcGIS GeoEvent Server 是一个流服务平台,可以处理和分析实时地理空间数据。该组件可用于监控机器、传感器等实时数据流,以及处理数据,帮助用户获取和分析有关实时事件的信息。 ArcGIS Image Server 是一个高性能 GIS 平台,可以处理和管理大量的遥感图像数据。用户可以在云端或组织内部存储遥感数据,并使用 ArcGIS Image Server 访问、管理和分析数据。 ArcGIS GeoAnalytics Server 是一个大数据处理和分析平台,支持处理 GB 至 TB 级别的数据量。该平台可用于处理各种类型的数据,包括传统的 GIS 数据、实时数据流、遥感图像等。 ArcGIS Business Analyst Server 允许用户对组织和业务网络进行调查分析,以发现市场趋势和数据关联。该平台可用于针对不同的商业需求和分析,提供数据驱动的见解。 ArcGIS Data Store 是一个可靠的空间数据存储和管理系统。该系统可与 ArcGIS Server 集成,并通过多种方式存储和管理海量地理空间数据,包括关系型数据库、NoSQL 数据库、文件和云存储等。 总之,ArcGIS Server 10.7.1 是一种全面的 GIS 平台,提供了各种组件和工具,可以处理和管理大量的地理空间数据,用于帮助组织分析和利用空间信息,以实现更好的商业和社会结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值