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日

相关文章

  • ng-repeat中Checkbox默认选中的方法教程

    以下是”ng-repeat中Checkbox默认选中的方法教程”的完整攻略: 1. 在ng-repeat中使用Checkbox 在ng-repeat中使用Checkbox很常见,当我们需要对列表项进行多选操作的时候就会用到Checkbox,如下所示: <ul> <li ng-repeat="item in items"&…

    C# 2023年5月31日
    00
  • C# 设计模式系列教程-组合模式

    下面我将详细讲解“C# 设计模式系列教程-组合模式”的完整攻略。 什么是组合模式 组合模式是一种结构型设计模式,旨在将多个对象合成树形结构以表示具有“整体-部分”关系的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 其中,组合模式将“组合对象”和“叶子对象”抽象为一个共同的接口。这样,用户就可以统一地操作组合对象和叶子对象。 组合模式的应用…

    C# 2023年5月31日
    00
  • C#实现在应用程序间发送消息的方法示例

    以下是C#实现在应用程序间发送消息的方法示例的完整攻略: 1. 介绍 在日常的软件开发中,我们常常会遇到在应用程序之间进行数据交互的场景,例如不同的窗口之间进行通信、不同的进程之间进行消息传递等。而在C#中,要实现应用程序间的消息传递,可以通过使用Windows API来实现消息队列或是共享内存两种方式,也可以使用.NET Framework提供的一些类库来…

    C# 2023年6月7日
    00
  • C#实现加密与解密详解

    C#实现加密与解密详解 在C#开发中,我们常常需要对某些敏感数据进行加密处理,以保证数据的安全性。本文将详细讲解C#实现加密与解密的方法,包括对称加密、非对称加密和哈希算法的讲解,并提供示例代码演示。 对称加密 对称加密是指使用相同的密钥进行加密和解密的加密方式。常见的对称加密算法有DES、AES等。下面是使用AES加密的示例代码: using System…

    C# 2023年6月1日
    00
  • C#实现对二维数组排序的方法

    下面是 C# 实现对二维数组排序的方法的攻略: 1. 实现方法 C# 中可以使用 Array 类的 Sort() 方法来实现二维数组的排序。Sort() 方法可以根据数组中的元素进行排序,所以在对二维数组排序时,需要先确定排序的方式(按行、按列、按某个元素的值等等)。下面以按行进行排序为例: 首先可以使用二重循环遍历数组,将每一行转换成一个一维数组。接着使用…

    C# 2023年6月7日
    00
  • C#实现将Doc文档转换成rtf格式的方法示例

    前言 本文将详细介绍如何使用C#将.doc文档转换成.rtf格式的方法示例。本文假设您已经了解C#编程语言,并且已经准备好在您的开发环境中进行编程和调试。 主要步骤 以下是将.doc文档转换成rtf格式的主要步骤: 加载.doc文档; 获取文档的数据流; 将数据流转换为.rtf格式; 将.rtf格式保存到文件或者输出流中。 详细说明 步骤1:加载.doc文档…

    C# 2023年6月1日
    00
  • c# Winform同一数据源多个控件保持同步

    下面我将为您详细讲解“C# Winform同一数据源多个控件保持同步”的攻略。 1. 前言 在使用C# Winform进行开发时,我们经常会遇到这样的需求:多个控件需要绑定同一个数据源,并且需要保持同步。例如,我们要在一个表格控件和一个文本框控件中显示同一个数据集的内容,并且需要在其中任意一个控件上进行修改后,同步更新到数据源和其他控件上。这时候,我们就需要…

    C# 2023年6月1日
    00
  • C#中常用的正则表达式

    下面来详细讲解”C#中常用的正则表达式”的完整攻略。 正则表达式的基础概念 正则表达式(Regular Expression)是一种用来描述或者匹配一组字符串的方法,它基于一些字符和特殊符号的组合,用来表示一些规则。在 C# 中,可以使用 System.Text.RegularExpressions 命名空间下的 Regex 类来处理正则表达式。 正则表达式…

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