- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析 AGS REST API表述性状态转移(REpresentational State Transfer)简称REST,REST软件架构由Roy Thomas Fielding博士在2000年首次提出,我们可以从他的论文中看到关于REST的详细描述:英文:/~fielding/pubs/dissertation/top.htm中文:/posts/show/186? ? 如何将REST解释清楚,InfoQ上有两篇文章:深入浅出REST、理解REST软件架构。?? ? 还有IBMDeveloperWorks上也有一些文章,就不一一列举了,初次接触REST的可以先看看《深入浅出REST》,有兴趣可以Google/Baidu查找更多的相关资料,特别是Fielding博士的论文。直接通读理论有时难免会有些晦涩,而将理论放到实际应用中往往可以得到更好的理解,因此这里我不去讲解REST是什么(我自己还在学习中),但可以先记住《深入浅出REST》中总结的REST五条关键原则:*为所有“事物”定义ID*将所有事物链接在一起*使用标准方法*资源多重表述*无状态通信? ? ArcGIS Server 9.3(简称Ags93)提供了全新的REST API,实现了一些Ags通用功能和服务便于Ags客户端开发,如javascript api。安装了Ags93之后,可以通过http://host/instance/services/folder方式来访问服务的根目录,其中instance默认为arcgis/rest,里面列举了当前服务器上所有已启动的server服务,并且可以将这些服务列表导入Google Earth,格式为kmz。REST访问地址中,folder和servicename是对大小写敏感的,folder前面的部分则没有影响。? ? 点击根目录列举的一个服务,页面会展示该服务的所有基本信息,包括地图图层,图层编号,空间参考,部分cache信息,初始化地图显示范围,地图全图显示范围,地图单位,MXD文档基本信息。? ? 同时,还可以选择将该服务放置在哪一种客户端(平台)上显示,ArcGIS JavaScript链接为:http://localhost/ArcGIS/rest/services/beijing/MapServer?f=jsapi? ? 这为Ags Javascript API访问REST API提供了一种途径,其他的客户端都可以用f这个参数来指定。? ? REST里所描述的服务,包含资源和操作两种类型,上面所说的是资源,就是描述该服务的一些属性信息,操作指的是基于该服务能够实现的功能,如导出地图、查询、搜索、生成KML。? ? 资源和操作的整体框架:? ? 每一种资源都有统一的URI来标识,资源通过链接被相互关联在一起,如MapService下的各种操作功能,并且资源有多重表述方式,如希望地图服务返回图片,可以在URI指定参数f=image,返回在ArcMap中浏览的图层文件,指定f=lyr,返回在javascriptapi客户端浏览的网页,指定f=jsapi等等,这些都取决于我们的应用和需求。这种框架结构粗看有点ArcXML的感觉,实际上它体现了更多的语义,如何在javascript api调用这些资源,两个文档中的简单例子:? ? 添加一个cache地图:myTiledMapServiceLayer?=newesri.layers.ArcGISTiledMapServiceLayer(/arcgis/rest/services/maps/world/MapServer);myMap.addLayer(myTiledMapServiceLayer);? ? 对图层构建查询功能:function?init()?{//build querymyQueryTask?=newesri.tasks.QueryTask(/arcgis/rest/services/maps/world/MapServer/1);. . .? ? Ags Javascript API基于REST API构建,其消息是通过JSON格式进行传递的,如http://localhost/arcgis/rest/services/maps/world/MapServer/export?bbox=-197.99999664046,-131.792384313038,197.99999664046,125.388423131397f=json? ? 其返回的格式为:{href : /arcgisoutput/_ags_map26163878476945a499cd7521135dd5
文档评论(0)