WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析

    WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析

     FeatureService也称要素服务,其最大的好处就是支持在线要素编辑,并将编辑同步更新到后台的数据库中,它需要ArcSDE提供地理数据库的访问支撑。因此Feature Service中的要素来源必须是来自于ArcSDE。

     关于Feature Service的详细介绍,可参考官网文档:

http://help.arcgis.com/en/arcgisserver/10.0/help/arcgis_server_dotnet_help/index.html#/What_is_a_feature_service/009300000020000000/

说明:

本机开发环境:

ArcGIS Server 10.0

ArcSDE 10.0 for MSSQL EXPRESS 2008 R2

本文前提条件:已经安装了ArcSDE并在ArcCatalog成功建立了数据库连接。如图所示:

 

一、准备数据:在ArcSDE中添加自定义点要素

      作为测试,这里我们在本机的ArcSDE中新建一个点要素类(其他要素类同理),该要素类表示一个点污染源。过程如下所示:

输入点要素名称,及别名,点击下一步。

选择坐标系,由于最终我们要在Web地图中显示,所以这里我们选择了WebMecator。然后点击下一步,选择默认的容差设置,点击下一步设置要素字段。

如上所示,这里我们添加了如上所示的一系列字段,包含污染源的编号,名称,经纬度,排放浓度值,负责人,运行状态,联系人等。

之后点击确定完成点要素的添加。

2、为ArcSDE数据库添加属性域(该步骤可选)

       关于属性域的介绍可参考官方文档:

     http://help.arcgis.com/en/arcgisdesktop/10.0/help/#/A_quick_tour_of_attribute_domains/001s00000001000000/

     由于在编辑要素时,因为要素的属性值(字段)只能是某一类型,或者在某一范围,或者是某些值中的一个。因此在编辑的时候我们就不能随意的输入,以确保数据不被破坏。那么这里就需要限制用户的输入。例如对于污染源的运行状态只能是:关闭或者运行。不能是其他的值。因此这里我们就需要借助属性域来确保用户输入的是正确的值,并更新到我们后台的数据库中。具体操作如下:

右键地理数据库,选择属性

添加如下所示的属性域值

以上过程可参考:

http://help.arcgis.com/en/arcgisdesktop/10.0/help/#/Creating_a_new_attribute_range_domain/001s00000003000000/

http://help.arcgis.com/en/arcgisdesktop/10.0/help/#/Creating_a_new_coded_value_domain/001s00000004000000/

3、将属性域应用到新建的点要素中。

右键要素,选择属性,在字段面板下,点击每一个字段,下面会有属性域选项,将我们刚才建立的属性域应用到相应的字段中。比如:我们点击运行状态字段,可以将其属性域设置为我们之前建立的名为state的属性值。如下图所示:

这样,SourceState属性值就只能是运行或者关闭了。从而使得用户不能输入其他非法的值,确保了数据的正确性。

4、新建MXD文档,添加我们我们之前在ArcSDE中新建的点要素。

      打开ArcMap新建一个MXD文档,将我们在ArcSDE数据库中新建的点要素添加进来。。

以上我们看到污染源来自于sde数据库,接下来设置污染源的符号系统。右键污染源——选择属性

点击符号

选择相应的符号,点击确定。这时符号已经变成了我们设置的样式了。这里设置的样式也是之后在Web中添加点要素(污染源)时默认的样式。

保存MXD文档,并发布,发布可在ArcCatalog中进行,也可在ArcMap中直接发布。过程:在ArcMap中选择刚才保存的文档,右键——点击发布到ArcGIS Server

 设置GIS服务相关选项

 输入服务器名,选择GIS服务,然后点击下一步。

一定要勾选Feature Access,表示启用要素服务。同时还可启用其他的GIS服务。之后点击下一步,完成发布过程。

 

posted @ 2012-11-03 17:20  Mr|Right  阅读(12034)  评论(5编辑  收藏  举报