查询

     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["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.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["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);
                    }



                    //  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.MapPoint))
                    {
                        pFeature.Symbol = LayoutRoot.Resources["DefaultFillSymbol"] as FillSymbol;
                        pGraphicsLayer.Graphics.Insert(0, pFeature);
                    }

                    // ResultsDisplay.Visibility = Visibility.Visible;
                }



            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值