public static List<String> listUrl = new List<string>(); int intUrlCount; private void Query_Click(object sender,RoutedEventArgs e) { listUrl.Add("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/0"); listUrl.Add("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/1"); listUrl.Add("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/2"); intUrlCount = listUrl.Count; Graphicslayer graphicslayer = MyMap.Layers["MyGraphicslayer"] as Graphicslayer; graphicslayer.Graphics.Clear(); TabControl.Visibility = Visibility.Visible; if (intUrlCount != 0) { for (int i = 0; i < intUrlCount; i++) { string url = listUrl[i]; QueryTask queryTask = new QueryTask(url); //queryTask.ExecuteCompleted += QueryTask_AllExecuteCompleted; queryTask.ExecuteCompleted+=QueryTask_ExecuteCompleted; ESRI.ArcGIS.Client.Tasks.Query query = new ESRI.ArcGIS.Client.Tasks.Query(); query.Text = texBoxname.Text; query.ReturnGeometry = true; query.OutSpatialReference = MyMap.SpatialReference; query.OutFields.Add("*"); queryTask.ExecuteAsync(query); } } } void QueryTask_ExecuteCompleted(object sender,ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) { FeatureSet featureSet = args.FeatureSet; s = args.FeatureSet; List<string> a =new List<string>(); for (int i=0;i<featureSet.Features.Count ;i++) { a.Add(featureSet.Features[i].Attributes["NAME"].ToString()); } if (featureSet != null && featureSet.Features.Count > 0) dataG.ItemsSource = featureSet.Features; else MessageBox.Show("No features returned from query"); } private void QueryTask_AllExecuteCompleted(object sender,ESRI.ArcGIS.Client.Tasks.QueryEventArgs args) { QueryTask objQueryTask = sender as QueryTask; //queryTask.ExecuteCompleted -= QueryTask_AllExecuteCompleted; intUrlCount--; FeatureSet pFeatureSet = objQueryTask.LastResult; FeatureSet objFeatureSet = args.FeatureSet; s = args.FeatureSet; if (pFeatureSet.Features.Count == 0) { if (intUrlCount == 0 && objFeatureSet.Features.Count == 0) { MessageBox.Show("没有查询到数据!"); } return; } //Graphicslayer pGraphicslayer = MyMap.Layers["MyGraphicslayer"] as Graphicslayer; //if (objFeatureSet != null && objFeatureSet.Features.Count > 0) //{ // pGraphicslayer.Graphics.Clear(); // foreach (Graphic pFeature in objFeatureSet.Features) // { // // pFeature.MapTip = CreatVehicleHistoryTips(pFeature.Attributes["OBJCODE"].ToString(),pFeature.Attributes["OBJNAME"].ToString(),pFeature.Attributes["DEPTNAME1"].ToString(),pFeature.Attributes["DEPTNAME2"].ToString(),pFeature.Attributes["DEPTNAME3"].ToString(),pFeature.Attributes["PICTURE"].ToString(),pFeature.Attributes["OBJDESC"].ToString(),pFeature.Attributes["MATERIAL"].ToString()); // if ((pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.polygon) || (pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.polyline) || (pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.MultiPoint)) // { // pFeature.Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as FillSymbol; // pGraphicslayer.Graphics.Insert(0,pFeature); // } // } // foreach (Graphic pFeature in objFeatureSet.Features) // { // // pFeature.MapTip = CreatVehicleHistoryTips(pFeature.Attributes["OBJCODE"].ToString(),pFeature.Attributes["MATERIAL"].ToString()); // if ((pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.MapPoint)) // { // pFeature.Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as FillSymbol; // pGraphicslayer.Graphics.Insert(0,pFeature); // } // } // // Resultsdisplay.Visibility = Visibility.Visible; //} this.dataG.ItemsSource = null; this.dataG.UpdateLayout(); this.dataG.ItemsSource = objFeatureSet.Features; } private void FindDetails_SelectionChanged(object sender,SelectionChangedEventArgs e) { // Highlight the graphic feature associated with the selected row DataGrid dataGrid = sender as DataGrid; int selectedindex = dataGrid.Selectedindex; if (selectedindex > -1) { FeatureSet featureSet = s; Graphicslayer pGraphicslayer = MyMap.Layers["MyGraphicslayer"] as Graphicslayer; if (featureSet != null && featureSet.Features.Count > 0) { pGraphicslayer.Graphics.Clear(); Graphic pFeature = featureSet.Features[selectedindex]; // pFeature.MapTip = CreatVehicleHistoryTips(pFeature.Attributes["OBJCODE"].ToString(),pFeature.Attributes["MATERIAL"].ToString()); if ((pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.polygon) || (pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.polyline) || (pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.MultiPoint)) { pFeature.Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as FillSymbol; pGraphicslayer.Graphics.Insert(0,pFeature); } // pFeature.MapTip = CreatVehicleHistoryTips(pFeature.Attributes["OBJCODE"].ToString(),pFeature.Attributes["MATERIAL"].ToString()); if ((pFeature.Geometry is ESRI.ArcGIS.Client.Geometry.MapPoint)) { pFeature.Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as FillSymbol; pGraphicslayer.Graphics.Insert(0,pFeature); } // Resultsdisplay.Visibility = Visibility.Visible; } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。