private void btnQuery_Click(object sender, RoutedEventArgs e)
{
QueryTask querytask = new QueryTask("http://192.168.5.177/ArcGIS/rest/services/shanxianMap/MapServer/3");
querytask.ExecuteCompleted += new EventHandler<QueryEventArgs>(querytask_ExecuteCompleted);
querytask.Failed += new EventHandler<TaskFailedEventArgs>(querytask_Failed);
Query query = new Query();
query.ReturnGeometry = true;//返回图形
//指定输出返回字段
query.OutFields.AddRange(new string[] { "TLMC", "BGRQ" });
//query.Where ="TLMC='"+"地类界'";
query.Where ="TLMC LIKE '%"+ this.txtBoxStreetName.Text+"%'";
querytask.ExecuteAsync(query);
}
void querytask_Failed(object sender, TaskFailedEventArgs e)
{
MessageBox.Show("查询失败!"+ e.Error);
}
//查询完后绘制该对象
void querytask_ExecuteCompleted(object sender, QueryEventArgs e)
{
// 清除之前的结果
GraphicsLayer graphicslayer = null;
if (objCurrentMap.Layers["QueryRoadResult"] != null)
{
objCurrentMap.Layers.Remove(objCurrentMap.Layers["QueryRoadResult"]);
}
graphicslayer = new GraphicsLayer() { ID = "QueryRoadResult" };
//获取最新结果
FeatureSet featureset = e.FeatureSet;
if (featureset.Features.Count > 0)
{
//将该查询出来的数据集添加到地图上
foreach (Graphic resultFeature in featureset.Features)
{
resultFeature.Symbol = this.CanvasQueryRoad.Resources["DefaultLineSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol;
graphicslayer.Graphics.Add(resultFeature);
}
this.objCurrentMap.Layers.Add(graphicslayer);
MessageBox.Show("查询完成!");
}
else
{
MessageBox.Show("无查询结果!");
}
}
IdentifyTask 查询多个图层
IdentifyParameters identifyParams = new IdentifyParameters()
{
Geometry = yourGeometry,
MapExtent = yourExtent,
Width = yourWidth,
Height = yourHeight,
ReturnGeometry = true
};
identifyParams.LayerOption = LayerOption.all;
identifyParams.LayerIds.AddRange(yourLayerIDCollection);
IdentifyTask identifyTask = new IdentifyTask(yourURL);
监听Execute;
identifyTask.ExecuteAsync(identifyParams);