FeatureService也称要素服务,其最大的好处就是支持在线要素编辑,并将编辑同步更新到后台的数据库中,它需要ArcSDE提供地理数据库的访问支撑。因此Feature Service中的要素来源必须是来自于ArcSDE。
关于Feature Service的详细介绍,可参考官网文档:
说明:
本机开发环境:
ArcGIS Server 10.0
ArcSDE 10.0 for MSSQL EXPRESS 2008 R2
本文前提条件:已经安装了ArcSDE并在ArcCatalog成功建立了数据库连接。如图所示:
一、准备数据:在ArcSDE中添加自定义点要素
作为测试,这里我们在本机的ArcSDE中新建一个点要素类(其他要素类同理),该要素类表示一个点污染源。过程如下所示:
输入点要素名称,及别名,点击下一步。
选择坐标系,由于最终我们要在Web地图中显示,所以这里我们选择了WebMecator。然后点击下一步,选择默认的容差设置,点击下一步设置要素字段。
如上所示,这里我们添加了如上所示的一系列字段,包含污染源的编号,名称,经纬度,排放浓度值,负责人,运行状态,联系人等。
之后点击确定完成点要素的添加。
2、为ArcSDE数据库添加属性域(该步骤可选)
关于属性域的介绍可参考官方文档:
由于在编辑要素时,因为要素的属性值(字段)只能是某一类型,或者在某一范围,或者是某些值中的一个。因此在编辑的时候我们就不能随意的输入,以确保数据不被破坏。那么这里就需要限制用户的输入。例如对于污染源的运行状态只能是:关闭或者运行。不能是其他的值。因此这里我们就需要借助属性域来确保用户输入的是正确的值,并更新到我们后台的数据库中。具体操作如下:
右键地理数据库,选择属性
添加如下所示的属性域值
以上过程可参考:
3、将属性域应用到新建的点要素中。
右键要素,选择属性,在字段面板下,点击每一个字段,下面会有属性域选项,将我们刚才建立的属性域应用到相应的字段中。比如:我们点击运行状态字段,可以将其属性域设置为我们之前建立的名为state的属性值。如下图所示:
这样,SourceState属性值就只能是运行或者关闭了。从而使得用户不能输入其他非法的值,确保了数据的正确性。
4、新建MXD文档,添加我们我们之前在ArcSDE中新建的点要素。
打开ArcMap新建一个MXD文档,将我们在ArcSDE数据库中新建的点要素添加进来。。
以上我们看到污染源来自于sde数据库,接下来设置污染源的符号系统。右键污染源——选择属性
点击符号
选择相应的符号,点击确定。这时符号已经变成了我们设置的样式了。这里设置的样式也是之后在Web中添加点要素(污染源)时默认的样式。
保存MXD文档,并发布,发布可在ArcCatalog中进行,也可在ArcMap中直接发布。过程:在ArcMap中选择刚才保存的文档,右键——点击发布到ArcGIS Server
设置GIS服务相关选项
输入服务器名,选择GIS服务,然后点击下一步。
一定要勾选Feature Access,表示启用要素服务。同时还可启用其他的GIS服务。之后点击下一步,完成发布过程。