ArcGIS API for Android 案例教程 15

来源:互联网 发布:4399unity3d插件下载 编辑:程序博客网 时间:2024/05/01 23:19

属性编辑

别嫌我懒,ArcGIS Android API中正好还有一个进行编辑的例子,让我可以拿来主义一下。在这个AttributeEditor例子中,当你点击一个要素,程序就会弹出一个编辑要素属性的对话框供你对现有值进行修改:

clip_image002 clip_image004

图 33 编辑要素的属性

点击一个要素,从服务查询到该要素的属性信息在前面的内容中已经叙述过了,如何将查询到的属性显示在一个对话框中也是比较容易的(例子中将如何根据属性值来构建对话框这个过程进行了封装,这部分可以略过),我们需要关心的是一旦修改了某个属性值,然后点击对话框中的“Apply”按钮后,程序如何把更改保存到服务器。

剥开这个例子里层层叠叠的封装(我实在想说这个例子写的真差……)后,其实它想要告诉大家的是应该通过这样的方式来保存编辑到服务器:

Graphic newGraphic = new Graphic();

…//一系列赋值

newGraphic.setAttributeValue(featureLayer.getObjectIdField(),
listAdapter.featureSet.getGraphics()[0]
.getAttributeValue(featureLayer.getObjectIdField()));

featureLayer.applyEdits(null, null, new Graphic[] { newGraphic },
createEditCallbackListener(updateMapLayer));

没错,这个地方看起来就和其他ArcGIS的Web API非常类似了,逻辑上就是新建一个Graphic对象,并将修改过的属性值赋予这个Graphic(别忘了ObjectID,这是标识编辑哪个要素的必需属性),然后调用ArcGISFeatureLayer的applyEdits方法进行提交。没错,Feature Layer已经封装了Feature Server服务中的applyEdits接口,保存编辑到服务器只需要简单的调用这个方法就可以了。