浪柱娱乐
您的当前位置:首页教你如何使用arcgis执行查询任务

教你如何使用arcgis执行查询任务

来源:浪柱娱乐


arcgis 执行查询任务(QueryTask)还有ExecuteAsync?需进一步了解

url = string.Format("http://{0}/arcgis2/rest/services/baidu/MapServer/{1}", ip, layerID);
 QueryTask queryTask = new QueryTask(url);
 queryTask.ExecuteCompleted += new EventHandler<QueryEventArgs>(queryTask_ExecuteCompleted);
 queryTask.Failed += new EventHandler<TaskFailedEventArgs>(queryTask_Failed);
 ESRI.ArcGIS.Client.Tasks.Query query = new ESRI.ArcGIS.Client.Tasks.Query();
 query.OutFields.Add("*");
 query.ReturnGeometry = true;
 query.Where = string.Format("FID={0}", QueryText);
 queryTask.ExecuteAsync(query);
private void queryTask_Failed(object sender, TaskFailedEventArgs e)
 {
 MessageBox.Show("Query failed: " + e.Error);
 }
 private void queryTask_ExecuteCompleted(object sender, QueryEventArgs e)
 {
 FeatureSet featureSet = e.FeatureSet;
 if (featureSet != null && featureSet.Features.Count > 0)
 {
 Graphic selectedFeature = featureSet.Features[0];
 // 放大到选择的要素
 ESRI.ArcGIS.Client.Geometry.Envelope selectedFeatureExtent = selectedFeature.Geometry.Extent;
 double expandPercentage = 30;
 double widthExpand = 2000 * (expandPercentage / 100);
 double heightExpand = 2000 * (expandPercentage / 100);
 ESRI.ArcGIS.Client.Geometry.Envelope displayExtent = new ESRI.ArcGIS.Client.Geometry.Envelope(
 selectedFeatureExtent.XMin - (widthExpand / 2),
 selectedFeatureExtent.YMin - (heightExpand / 2),
 selectedFeatureExtent.XMax + (widthExpand / 2),
 selectedFeatureExtent.YMax + (heightExpand / 2));
 myMap.ZoomDuration = new TimeSpan(0, 0, 2);
 myMap.ZoomTo(displayExtent);
 }
 }
显示全文