c#调用arcgis地图rest服务示例详解(arcgis地图输出)

在介绍 "C#调用ArcGIS地图REST服务示例详解(ArcGIS地图输出)"这个话题之前,简单介绍一下ArcGIS。

ArcGIS是一款专业的地理信息系统软件,全称“Environmental Systems Research Institute (ESRI) ArcGIS”。ArcGIS提供了从数据收集到最终生产的一整套地理信息系统软件。ArcGIS中有各种各样的功能模块,包括开发者可用的模块,从而使其成功地成为各种各样的应用程序的支柱。而ArcGIS REST服务是其中一个重要组成部分,在WebGIS、地图制图等方面得到广泛应用。

现在开始介绍"C#调用ArcGIS地图REST服务示例详解(ArcGIS地图输出)"。

一、ArcGIS服务类型

在开始操作之前,我们首先要了解不同类型的ArcGIS服务。在 ArcGIS REST API 中有以下服务类型:

1.地图服务(MapServer)

2.特征服务(FeatureServer)

3.图像服务(ImageServer)

4.地理处理服务(Geoprocessing)

在以上几种服务中,其中最常用的是地图服务。

二、如何查找ArcGIS REST服务

通过以下链接可以查找到ArcGIS REST服务:

http://services.arcgisonline.com/arcgis/rest/services/

在以上链接中,我们可以查找到以下地图,以“ 地图 (MapServer)”服务为例:

http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer

三、如何查询ArcGIS地图服务中的图层

使用以下链接查询 ArcGIS REST服务中所有图层:

http://sampleserver1.arcgisonline.com/arcgis/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer

在上述的链接中,使用图层获取链接和layer ID编号结合查询图层。

四、如何查询ArcGIS地图服务的地图

使用以下链接查询 ArcGIS 地图服务:

http://sampleserver1.arcgisonline.com/arcgis/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/export?bbox=-12969205.5371943,3984582.834320,-12317234.3714555,4898547.92367583&bboxSR=&layers=&layerDefs=&size=1024,768&imageSR=&format=png&transparent=false&f=image

五、如何使用ArcGISREST 地图服务输出功能

Output 的一个基本参数是 Format,常用的有三种格式:PNG, PDF, and JPEG。我们可以通过 Format 指明其输出的文件格式。

以下是示例:

private void callExportMapFn()

   {

       RequestConfig config = new RequestConfig(string.Format("{0}//{1}/arcgis", this.webServer, this.instaceName),

           string.Format("{0}/{1}", this.serviceName, this.layerNumber))

       {
           Width = Convert.ToInt32(m_txtWidth.Text),
           Height = Convert.ToInt32(m_txtHeight.Text),
           ImageFormat = myImageFormat,
           DPI = Convert.ToInt32(m_cmbResolution.Text),
           VisibleLayers = myVisibleLayers,
           BoundingBox = new Envelope
           {
               XMax = Convert.ToDouble(m_txtXMax.Text),
               YMax = Convert.ToDouble(m_txtYMax.Text),
               XMin = Convert.ToDouble(m_txtXMin.Text),
               YMin = Convert.ToDouble(m_txtYMin.Text),
            },
           MapImageFormat = myImageFormat,
           OutPutFileName = string.Format("C:\\temp\\{0}", fileNameTextBox.Text)
        };

       ExportService exportService = new ExportService(config);

       exportService.ExportMapToDisk();

    }

在USGS下载摄影图像等ASNII格式的DEM时,需要安装ArcGIS才能够拖动文件过来浏览。

六、C# 调用 ArcGIS 服务的注意事项

在使用 C# 调用时,需要注意以下几个问题:

1.必须先获取 ArcGIS REST 服务,找到服务内部的要素层并确定所需的工具和工作流程

2.可运行 .NET 应用程序来调用 ArcGIS REST服务。这主要涉及一些 Microsoft 公司开发的 SDK,如 Silverlight 或 Windows 8 等。

3.以文件格式获取 ArcGIS REST 服务,如浏览器或 ArcGIS JavaScript API等。

四、示例代码

下面是一个获取 ArcGIS REST 服务的代码示例。代码中使用了HttpWebRequest 和WebResponse 类型,通过POST方法向以 Uri myUri 作为 endpoint 的服务发送请求,获取响应并序列化为 JSON 格式数据。

private void GetJSONResult(Uri myUri, string pPostData)

       {

           try

           {

               HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(myUri);

               httpReq.Method = "POST";

               httpReq.ContentType = "text/xml;chraset=utf-8";
               httpReq.ContentLength = System.Text.Encoding.UTF8.GetByteCount(pPostData);

               StreamWriter swForWrite = new StreamWriter(httpReq.GetRequestStream());

               swForWrite.Write(pPostData);

               swForWrite.Close();

               HttpWebResponse httpResp = (HttpWebResponse)httpReq.GetResponse();

               StreamReader srForRead = new StreamReader(httpResp.GetResponseStream(), System.Text.Encoding.UTF8);

               string strResult = srForRead.ReadToEnd().Trim();

               srForRead.Close();

               httpResp.Close();

           }

           catch (Exception ac)

           {

               MessageBox.Show(ac.Message);

           }

       }

以上内容,就是"C#调用ArcGIS地图REST服务示例详解(ArcGIS地图输出)"的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#调用arcgis地图rest服务示例详解(arcgis地图输出) - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C# DataSet查看返回结果集的实现

    以下是关于“C# DataSet 查看返回结果集的实现”完整攻略的讲解。 什么是 DataSet 首先需要了解什么是 DataSet。DataSet 是 C# 中的一种数据类型,用于表示一组数据集合。DataSet 可以包含多个 DataTable,每个 DataTable 可以包含多个 DataColumn,每个 DataColumn 可以有自己的数据类型…

    C# 2023年5月15日
    00
  • MVC 5 第一章 创建MVC 5 web应用程序

    下面是关于“MVC 5 第一章 创建MVC 5 web应用程序”的完整攻略,主要包含以下内容: 创建MVC 5 web应用程序的步骤 每个步骤所涉及到的具体操作 两条示例说明 1. 创建MVC 5 web应用程序的步骤 创建MVC 5 web应用程序的步骤主要包括以下几个方面: 创建项目 配置项目 创建控制器 创建模型 创建视图 2. 每个步骤所涉及到的具体…

    C# 2023年5月31日
    00
  • 让C# Excel导入导出 支持不同版本Office

    为了让C# Excel导入导出支持不同版本Office,我们需要使用Microsoft.Office.Interop.Excel库。但是不同版本的Office对Interop.Excel库的引用稍有不同,导致在使用Interop.Excel时可能会出现错误。 因此,我们需要先根据传递给我们的Excel文件的版本来确切地确定Interop.Excel的引用版本…

    C# 2023年5月15日
    00
  • C# 如何解析获取Url参数值

    要解析获取URL参数值,我们需要使用C#中的.NET Framework的System.Web命名空间提供的HttpUtility.ParseQueryString方法。此方法可以将URL中查询字符串部分的参数解析为键值对的形式。 下面是具体的步骤: 获取URL链接 我们可以使用C#中的WebRequest或HttpClient类来获取URL链接的内容。 例…

    C# 2023年5月31日
    00
  • 解析在C#中接口和类的异同

    解析在C#中接口和类的异同 在C#中,接口和类都是面向对象编程中的重要概念,它们有一些相同点,也有一些差异。本文将从以下几个方面对接口和类进行比较,以帮助读者更好地理解它们之间的异同。 1. 定义 类是一种可以实例化的数据类型,它具有特定的属性和方法。类定义了数据类型的结构和行为,它是代码的基本组织单元。C#中,定义类的语法如下: class ClassNa…

    C# 2023年5月15日
    00
  • C#如何添加PPT背景

    添加PPT背景通常可以通过C#代码实现,在这里我将为你提供完整的攻略,包括代码示例和解释。 步骤一:引用Microsoft.Office.Interop.PowerPoint库 using Microsoft.Office.Core; using Microsoft.Office.Interop.PowerPoint; 在代码中引用上述库以便操作PPT。 步…

    C# 2023年6月6日
    00
  • C#两个相同属性的类赋值方法

    为了理解C#两个相同属性的类赋值方法,我们需要首先了解两个重要的概念:类和类的属性。类是对象的模板或蓝图,它定义了对象的状态和行为;而属性是类的成员之一,用来描述对象的特征或状态。在C#中,我们可以通过类的赋值来将一个对象的属性的值赋给另一个对象。 接下来,我们将讨论C#两个相同属性的类赋值方法的完整攻略,过程中将包含两条示例说明: 一、初步了解类和类的属性…

    C# 2023年5月31日
    00
  • C#控制台程序中使用官方依赖注入的实现

    下面是关于“C#控制台程序中使用官方依赖注入的实现”的完整攻略,包含两个示例。 1. 什么是依赖注入 依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦组件之间的依赖关系。在依赖注入中,组件不再负责创建它所依赖的对象,而是将这个责任交给外部容器。这样可以使组件更加灵活、可测试和可维护。 2. 使用官方依赖注入 在.NET …

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部