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); } }