Feature Service期待了很久,随着gis应用的web化,很多的高级的GIS功能的web化的需求也渐渐多了起来,比如说编辑,这是一个总多用户期待了很久的话题,在此之前,富客户端的用户,比如flex,silverlight,javascript的用户都无法实现在线编辑的功能,或者说只能使用曲线的实现方式,那就是使用geoprocessing service的方式来实现一部分的编辑功能,本来我们采用flex/Silverlight/javascript的方式开发应用,就是为了简化专业的gis的功能,那使用geoprocessing service又使得我们和复杂的功能以及概念较上了劲,所以说期盼已久的Feature Service解决了我们很多人的问题。现在arcgis 10还没有发布,我们使用的是arcgis 10的prerelease 版本,Feature Service的功能已经都呈现出来了。
什么是Feature Service?
下面这段话是ESRI官方解释Feature Service的:
Feature Service在互联网上提供要素,并且提供显示要素的符号.客户端可以执行查询以得到要素或者可以执行应用到服务器上的要素编辑. Feature service提供了能够增强客户端编辑体验的模板.关系表或者非空间表也可以使用Feature service进行查询和编辑.
图1
Feature Service的数据要求
用于发布FeatureService的数据要求:
· 所有的数据必须来自一个单独的ArcSDE geodatabase.
· 所有的数据都必须注册成geodatabase.
· Write permissions for the ArcSDE 数据必须具有写权限,如果数据要用来编辑.如果使用操作系统认证,这些权限必须赋给ArcGISSOC 用户.
· 版本和非版本数据都支持;但是如果编辑非简单类型数据(比如网络,拓扑)是必须版本的数据.
Feature Service的发布
Feature Service现在不是一个单独的service类型,它是随着mapservice发布的,在发布mapservice的时候把Feature access的选项打勾,见附图2。我们就会获得相应的Feature Services的url了。
图2
Feature Service的使用
客户端可以通过web api或者arcgis desktop来访问Feature Service.
目前已经发布的arcgis api for javascript. 2.0已经能够访问Feature Service实现编辑功能了,在2.0版本中,提供了一个editwidegt,可以用来实现编辑功能,另外还提供了
Attributeinspector:用于选择要素的属性的编辑。
Edit Toolbar:一个没有界面的工具条,支持移动graphics和编辑节点。
TemplatePicker:显示模板的集合。
AttachmentEditor:添加浏览和删除附件。
Javascript. api网站上有很多的例子可以参考了,这里不一一列举。详细请参考下面网址。http://help.arcgis.com/en/webapi/javascript/arcgis/help/jssamples_start.htm
Arcgis desktop 10也可以对Feature Service进行很好的编辑了。步骤如下:
1 把服务添加到arcmap中,在arccatalog中连接Feature Service,注意一定要使用方式连接的Feature Service才能在arcmap中进行编辑,不能以管理方式连接Feature Service。
2 点击服务图层,右键菜单,点击Edit Features->create local copy for editing,arcgis server会在本地创建一个数据拷贝,并且添加到arcmap中,并且把服务的图层显示关闭,本地的图层显示打开。
3 打开arcmap的编辑工具条,点击开始编辑,进行数据的编辑操作。见附图3
图3
4 编辑完毕之后,在本地图层的右键菜单中,通过Edit Features->synchronize local edits with server工具把本地的编辑操作同步到server中。见附图4
图4
这样,在arcmap中的Feature Service的编辑就完成了。
总之,Feature Service为我们把更多的GIS功能实现在富互联网上提供了更加丰富的手段。