Arcgis Flex在线编辑
用了下Editor控件,感觉不错吖,但是基本功能实现了后,,,又有好多问题发现了。反正用别人的总是那么不灵活吧,,, Editor把添加,更改,删除都整合在一起了,但是在不用Editor时我想更新要素的属性又怎么办呢。。。 通过Rest的接口就可以实现顾 增加要素 url:http://localhost/ArcGIS/rest/services/coal/FeatureServer/0/addFeatures 输入Json格式的数据 ?[ 更新要素 url如:http://localhost/ArcGIS/rest/services/Monitor/FeatureServer/0/updateFeatures [{"geometry":{"x":0,"y":0},"attributes":{"OBJECTID":407,"COALID":"22222"}}] 删除要素 http://localhost/ArcGIS/rest/services/coal/FeatureServer/0/deleteFeatures 打开页面后,一般只需要要设置 Object IDs 或Where就行了 参考:http://help.arcgis.com/en/arcgisserver/10.0/apis/rest/fsupdate.html? ============================================================================= ArcGIS API for Flex中提供了一些工具实现对Feature的编辑操作,不过其实质是对ArcGIS Server REST API的再包装。为了更大的灵活性,在这里我们谈一下如何直接调用ArcGIS Server REST API来实现对Feature的新增、更新、删除操作。 FeatureServer 对Feature进行操作,首先需要FeatureServer的支持。这里我们使用ArcGIS服务器上的一个FeatureServer,http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Fire/Sheep/FeatureServer。在浏览器中打开这个rest服务,共有点、线、面三个图层,点击进入点图层Points of Interest后,在页面的最下方可以看到该图层支持查询(Query)、新增(add Features)、更新(Update Features)、删除(Delete Features)和可以同时执行新增、更新和删除操作的应用编辑(Apply Edits)操作。 点击任何一个操作,在新打开的页面中输入一些必要的参数便可执行。对应在页面中输入参数这种方式,本文以对点要素的操作为例,讲述在Flex中如何调用ArcGIS Server REST API、如何传递参数以及如何对返回结果进行处理,从而实现对Featrue的新增、更新和删除操作。 新增点 点击上图的Add Features进入新页面后,其url地址为http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Fire/Sheep/FeatureServer/0/addFeatures。这个地址即为实现新增feature功能的rest接口,Format选择JSON,在Features中输入[{"geometry":{"y":34,"x":108},"attributes":{"description":"addPoint","type":2}}],点击Add Features按钮开始执行。 如果成功,返回 否则 相应地,在Flex中需要三步来完成上述操作,首先构造一个JSON格式字符串;其次调用对应的Rest接口;最后对返回结果进行处理。 在Flex中构造JSON字符串,可以采用直接构造或者先构造成嵌套的Object,然后转成JSON两种方式。为了灵活性,本文采用后一种方式,构造的代码如下,
在Flex中调用ArcGIS Server REST API,通过URLRequest调用一个URL地址就可以了,同时需要将JSON赋值给URLRequest的data属性,设置format为json。至于是选择POST还是GET,这个取决于REST接口支持哪种方式。
最后需要对返回的结果进行处理,这里尤其要强调的是,执行后有正确和错误两种返回结果。需要对返回的内容进行判断,才能最终确定是否能正确执行。
更新和删除点 和新增点相差无几,就是调用的REST接口和返回结果有所不同而已,当然需要构造对应的JSON字符串。相关代码均在源程序中,在这里就不再详细讲解。 小结 本文以对点的编辑操作为例,讲述了如何使用ArcGIS Server REST API,当然这种方式不局限于此,适合于所有的REST API。除此之外需要说明的是,上述API支持多个点的同时编辑操作,为了简洁源码中仅仅对单个点进行编辑操作。 开发环境为Flash Builder4.6,ArcGIS API 2.5 for Flex。 http://www.cnblogs.com/esrichina/archive/2012/11/05/2754580.html(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |