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(queryTask_ExecuteCompleted);
                queryTask.Failed += new EventHandler(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);
            }
        }

你可能感兴趣的:(arcgis)