在介绍 "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技术站