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# DateTime.AddSeconds()方法: 将指定的秒数加到指定的日期上

    DateTime.AddSeconds()方法简介 在 C# 中,DateTime 类型的实例代表了日期和时间值。AddSeconds() 是 DateTime 类型提供的一个方法,它的作用是向 DateTime 对象添加指定的秒数。它会返回一个新的 DateTime 对象,表示当前对象加上指定秒数后的日期和时间。 方法定义如下: public DateTi…

    C# 2023年4月19日
    00
  • C# 动态输出Dos命令执行结果的实例(附源码)

    下面是对主题“C# 动态输出Dos命令执行结果的实例(附源码)”的详细讲解攻略。 1. 背景介绍 在C#中执行DOS命令并输出执行结果,通常采用Process类来实现。但如果要及时输出命令执行结果,我们需要借助于StandardOutput和BeginOutputReadLine两个属性和方法。 2. 具体步骤 2.1 创建Process实例 首先,我们需要…

    C# 2023年6月7日
    00
  • vs2019 实现C#调用c++的dll两种方法

    vs2019 实现C#调用c++的dll两种方法 本文主要介绍使用vs2019实现C#调用c++的dll两种方法。 方法一:使用DllImport 编写C++动态链接库 cpp // cppdll.h extern “C” __declspec(dllexport) int add(int a, int b); cpp // cppdll.cpp int a…

    C# 2023年6月3日
    00
  • C#操作IIS方法集合

    下面是关于”C#操作IIS方法集合”的完整攻略,包括常用方法和两个示例。 一、C#操作IIS方法集合 1.1、引入命名空间 在使用C#操作IIS前,需要先引入Microsoft.Web.Administration命名空间。方法是在代码文件的开头添加以下代码: using Microsoft.Web.Administration; 1.2、创建IIS管理对象…

    C# 2023年5月15日
    00
  • C#中内联函数的用法介绍

    C#中内联函数的用法介绍 在C#中,我们可以使用内联函数(Inline Function)来优化代码的执行速度。内联函数是指编译器将函数调用直接展开成函数体,从而避免了函数调用的开销,提高了程序的执行效率。 何时使用内联函数 在一些频繁调用的简单函数中,使用内联函数可以避免频繁的函数调用开销,从而提高程序的执行效率。 需要注意的是,内联函数的代价是代码的体积…

    C# 2023年6月7日
    00
  • 详解ASP.NET MVC 利用Razor引擎生成静态页

    关于“详解ASP.NET MVC 利用Razor引擎生成静态页”的完整攻略,我分为以下四部分来讲解。 什么是ASP.NET MVC和Razor引擎 ASP.NET MVC是一种模型-视图-控制器(MVC)应用程序框架。它提供了一种更好的方式来处理 Web 应用程序的复杂性并确保它们易于维护和测试。 Razor引擎则是ASP.NET MVC中使用的默认视图引擎…

    C# 2023年5月31日
    00
  • C# 泛型接口的抗变和协变

    C# 泛型接口的协变和抗变是面向对象编程中非常重要的概念,可以让我们更加方便和灵活地处理泛型类型的数据集合。在本篇攻略中,我们将会介绍C#泛型接口的抗变和协变的概念及其用法,并提供两个示例以帮助您理解。 什么是C#泛型接口? C# 泛型接口是一种在接口定义中使用类型参数的技术,它可以使接口更加通用,可以应用于多种数据类型。在C#中,我们通常使用泛型接口来定义…

    C# 2023年5月15日
    00
  • asp.net错误捕获(错误处理)page_error事件使用方法

    当ASP.NET应用程序运行时,可能会发生许多错误,如页面不存在、数据库连接丢失、未处理异常等。这些错误可能会使您的应用程序崩溃或给用户带来糟糕的体验。为此ASP.NET提供了一个Page_Error事件来捕获未处理的错误并进行处理。 下面是使用Page_Error事件的示例: void Page_Error(object sender, EventArgs…

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