1. 什么是Feature Service?
按照ESRI官方的定义,Feature
Service可以提供在地图控件中显示的要素的符号,执行查询并且实现对要素数据的编辑。也就是说在客户端要想实现地图的符号化与在线编辑更加容易了。感谢ESRI所作出的努力,要是有钱我肯定买套正版的。
2. 如何发布一个Feature Service?
发布一个Feature Service和发布其他类型的服务没有本质上的区别,Feature Service内嵌于Map
Service中,在讲MXD文档发布成服务的过程中可以勾选Feature Access选项,来添加一个Feature
Service,同时还可以控制是否启用查询和编辑功能。下面看图。
3. 在代码中调用Feature Service,实现在线编辑和地图符号化
首先声明一个FeatureLayer要素,来引用服务,例如:
Url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/SanFrancisco/311Incidents/FeatureServer/0"
MouseLeftButtonUp="FeatureLayer_MouseLeftButtonUp"
DisableClientCaching="True"
Mode="OnDemand"
SelectionColor="#FFFFFF00"
OutFields="*" />
其中的SelectionColor特性指定,地图上的要素被选择后以什么样的方式高亮显示。
然后我们要定义一个数据绑定控件,在ArcGIS API
SDK中已经为我们提供了这样的一个通用控件,并且要绑定到我们的地图控件和FeatureLayer元素之上,例如:
x:Name="MyFeatureDataForm" FeatureLayer="{Binding Path=Layers[PointLayer],
ElementName=MyMap}"
IsReadOnly="False" LabelPosition="Left" />
这样,当我们在地图上选择相应的要素后,就会弹出一属性编辑控件,对属性进行更改,向数据库同步。看图。
本文,仅提供实现这一功能的思路,后台逻辑代码并没有提供,可以在ESRI资源中心查找,
希望对大家有一些帮助。