通过表格查找要素并且显示属性和高亮地图显示
关键接口:
ESRI.ArcGIS.Client.Tasks.QueryTask 用于查询
QueryTask queryTask = new QueryTask("http..."); 设置查询图层服务
queryTask.ExecuteAsync(query); 执行查询语句
queryTask.ExecuteAsync(query,"user state"); 执行查询语句并带用户状态
ESRI.ArcGIS.Client.Tasks.Query 用于设置查询条件
Query.text 设置查找文本
Query.Where 设置查找条件
Query.Outfield.AddRange or Query.Outfield.Add 设置查询输出字段
Query.OutSpatialReference 设置查询输出控件参考
Query.ReturnGeometry 设置输出要素是否包含集合体
datagrid数据绑定:
分两种:一种是横排显示,一种是竖排显示
竖排显示首先在Xaml中要首先设置列字段数据绑定
<Datagrid columns>
<sdk:datagrid.textcolumn Binding="{binding path=key}">//字段
<sdk:datagrid.textcolumn Binding="{binding path=value}">//值
在后台代码中:
dataGrid.ItemsSource = selectedFeature.Attributes;//绑定选择要素的属性
横排显示需要在Xaml中设置列字段数据绑定
<Datagrid columns>
<sdk:datagrid.textcolumn Binding="{binding attributes[]}">//绑定
在后台代码中:
Binding resultFeaturesBinding = new Binding("LastResult.Features");//绑定属性
resultFeaturesBinding.Source = queryTask;//绑定来源
dataGrid1.SetBinding(DataGrid.ItemsSourceProperty,
resultFeaturesBinding);//绑定
在地图中高亮显示:
首先在Xaml中添加图层<esri:GraphicsLayer
ID="MyGraphicsLayer" />
再在后台程序中:
GraphicsLayer selectionGraphicslayer =
map1.Layers["MySelectionGraphicsLayer"] as GraphicsLayer;
graphicsLayer.Graphics.Add(selectedFeature);//绑定要素图层标记
通过点击图层查找要素并且显示属性和高亮地图显示
定义鼠标勾画结束事件
private void MyDrawFace_DrawComplete (object sender,
ESRI.ArcGIS.Client.DrawEventArgs args)
{
QueryTask queryTask = new QueryTask("http:“);//定义查找数据源
query.Geometry = args.Geometry;//定义查找图形
queryTask.ExecuteAsync(query);执行查找
}
在地图中高亮显示多个要素:
foreach (Graphic feature in featureSet.Features)
{
graphicsLayer.Graphics.Insert(0, feature);
}