天天看点

C#调用ArcGIS REST服务

arcgis rest api提供了简单、开放的接口来访问和使用arcgis server发布的服务。使用arcgis rest api通过url可以获取和操作每一个服务中的所有资源和操作。

1、使用步骤

    1)构建请求网址

  b、确定操作:不同地理信息系统服务支持不同的操作。不同的操作会返回不同的结果。地图服务可以地图输出,点击查看,查找和生成kml。输出地图可以生成地图,同时可以点击产看是否给出地图服务图层的属性表。

  c、确定参数:不同的操作需要不同的参数。例如,如果请求地图图片,需要提供地图范围的四周角点坐标参数,也就是地图覆盖范围。

  d、确定输出格式:rest api支持很多输出格式,例如json,kmz,图片和html。确定输出格式的重要参数是f。在url请求的查询字符串后面加上”f=<你的格式>”来确定输出格式。例如:f=html返回的数据格式为html;f=json返回的数据格式为json;f=image返回的格式为image等等。

我们就以上面的4个步骤来构建自己需要的url。一般来说,格式如下:

  http://{arcgis server name}/arcgis/rest/services/{foldername}/{service name}/{service type}/{operation}?{{parameter1}={somevalues}&{parameter2}={some values}&…&{parameter}={some values}}

  可以看到,整个url请求分为两个部分,第一部分是服务的端点和操作类型,也就是“?”前面的部分;第二部分是查询字符串,即请求参数,“?”后面的部分。

  2)发送请求到arcgis server

  提交url请求到arcgis server sending,可以不通过编程发送url请求。例如,只需在网页浏览器的地址栏输入网址,如ie或firefox。每种编程语言都用不同的提出请求方式。

  3)接受服务器的响应

  接受arcgisserver的响应,arcgis server处理请求并返回响应到客户端。对于一个同步的工作,客户端一直等待收到服务器的响应。对于一部工作,服务器发送一份工作编号来定期跟踪客户端的工作状态。

  4)解析服务器响应

  arcgis server rest web服务的响应可以是多种格式,例如json,kml,图片和html。客户端可判断响应时成功还是失败。如果失败了,客户端可以判断错误信息。如果响应是成功的,客户端可以解析响应所需的信息,并恰当地利用这些信息。

2、编程使用

参考代码:

C#调用ArcGIS REST服务
C#调用ArcGIS REST服务

代码只是简单的在一个图层上加了一个点,注意以下2点:

(1)确定参数的json格式

(2)解析响应结果

对于{"addresults":[{"objectid":6,"globalid" : null,"success":true}]}这样的json字符串构造了一个dictionary<string, list<dictionary<string, object>>>复杂的对象来保存结果,如果是调用query操作,返回的结果是一个featureset,可以使用featureset的fromjson来得到结果。

newtonsoft.json(json.net)下载:

<a href="http://json.codeplex.com/">http://json.codeplex.com/</a>

参考:

1、基于 rest 的 web 服务:基础

<a href="http://www.ibm.com/developerworks/cn/webservices/ws-restful/">http://www.ibm.com/developerworks/cn/webservices/ws-restful/</a>

2、arcgis客户端开发学习笔记(五)——arcgis rest api基础 

<a href="http://www.cnblogs.com/carlbiao/archive/2010/09/09/1822419.html">http://www.cnblogs.com/carlbiao/archive/2010/09/09/1822419.html</a>

3、java中调用arcgis server rest api 

<a href="http://www.cnblogs.com/esrichina/archive/2013/02/01/2889224.html">http://www.cnblogs.com/esrichina/archive/2013/02/01/2889224.html</a>

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

http://www.cnblogs.com/luxiaoxun/p/3364107.html