初识ArcGIS Server 9.3 REST API

面对多位GIS开发界牛人对Web ADF的声讨(1234...),ESRI选择以加快曝光ArcGIS 9.3 Server产品作为回应。前段时间发布了一系列的podcast来讲9.3里面的RESTJavascript API,并提供了一个演示,展示了Javascript API的使用效果(还是不错的,但肯定要加大网络传输量)。并且很快的将REST API文档上线,不过下午这个网址突然当掉了。也许这周或下周就将面向部分用户,开发商进行测试。

在之前版本的Server产品中,ESRI已经发布了SOAP API,但只局限于进行地图发布,同时由于SOAP协议本身,传输量也不小。这次发布的REST API顾名思义,提供了REST风格的开发接口,可发布json格式的数据。

由于REST风格的Web开发是将全部将资源以URL的方式对外发布,因此构建正确的URL字符串就成为这种开发方式的核心。这次ESRI提供了一个工具来辅助你完成URL的构建,叫做Services Explorer。你使用这个工具的方式就是通过浏览器,这里有一个示例

通过这个工具,你可以看到这台GIS服务器发布的所有GIS服务。对每一个GIS服务来说,例如ESRI_Census_USA (MapServer)这个地图发布服务,你看到的每一个链接就是访问这个服务的URL地址,比如在第一行View in: 中链接ArcGIS Javascript指向的URL,就是用Web方式浏览这个地图服务的地址。而Layers中每个图层的链接就表示了访问这个图层元数据的URL。

除了返回地图,还有基本的Identify,Find这类查询操作也以URL的方式发布了。例如URL:
http://myserver/arcgis/rest/services/maps/world/MapServer/export
表示了导出地图这个操作。当某个操作必需要参数时,就把参数写在后面,如:
http://myserver/arcgis/rest/services/maps/world/MapServer/export?bbox=-197.99999664046,-131.792384313038,197.99999664046,125.388423131397
表示导出这个范围内的图片。而如果要返回Json形式的数据,则再加参数f=json在末尾。

对于需要添加参数的操作,Services Explorer也提供了帮助。仍以ESRI_Census_USA (MapServer)为例。在页面最下可以看到Supported Operations,后面跟一些链接,就是这个Map服务提供的操作。打开这些链接,Services Explorer以输入框,单选框,下拉框的形式告诉你这个操作需要哪些参数,都是哪些类型的值有效。你设定好以后,会为你构建正确的请求URL,并返回操作结果。

尽管ESRI的产品总给人以笨重复杂的印象,但从这套REST API来看是蛮轻量的,提供的Services Explorer也很到位。只是不知道操作能不能自己扩展,还是只能使用产品给定的那些基本功能。如果可以扩展,那么这一套机制就比ADF那套高明得多了。即使不行,现有的这些REST风格也可以很容易与ajax技术结合,更方便与Silverlight,Flex这类客户端技术结合,那一定可以极大扩展ESRI产品的应用领域。
posted @ 2008-02-28 16:42  老枪911  阅读(2872)  评论(3编辑  收藏  举报