在Silverlight中通過WCF和ArcGIS SDE獲取圖層中的屬性和要素List

本文在Silverlight中通過WCF和ArcGIS SDE獲取圖層中的屬性和要素列表。

應用程序:Silverlight

方法:WCF,通過ArcSDE讀取醫院圖層地理要素

 

結果如下:

 

 

結果:

 

 

步驟:

新建WCF:MyGeometryService.svc,如下:

IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)pWorkspace;

            IFeatureDataset featureDataset = featureWorkspace.OpenFeatureDataset("SDE.shanghai");

            //IFeatureClassContainer featureClassContainer = (IFeatureClassContainer)featureDataset;
            IFeatureWorkspace fws = featureDataset.Workspace as IFeatureWorkspace;

            string layerName = "SDE.Hospital";

            IFeatureClass featureClass = fws.OpenFeatureClass(layerName);
            //IFeatureClass featureClass = featureLayer.FeatureClass;


            IQueryFilter queryFilter = new QueryFilterClass();
            queryFilter.WhereClause = "CN_NAME LIKE '%區%'";
            queryFilter.SubFields = "CN_NAME";
            int fieldPosition = featureClass.FindField("CN_NAME");
            IFeatureCursor featureCursor = featureClass.Search(null, true);
            IFeature feature = null;
            StringBuilder sb = new StringBuilder();
            while ((feature = featureCursor.NextFeature()) != null)
            {
                //geoString += feature.get_Value(fieldPosition).ToString();
                sb.Append(feature.get_Value(fieldPosition).ToString());
            }
            return sb.ToString();

 

步驟二:引用WCF並調用該服務:

如下:

 

 private void btnMyGeometryService_Click(object sender, RoutedEventArgs e)
        {
            

            MyGeometryService.MyGeometryServiceClient client = new MyGeometryService.MyGeometryServiceClient();
           
            client.GetGeoStringCompleted += new EventHandler<MyGeometryWCFServiceApp.MyGeometryService.GetGeoStringCompletedEventArgs>(client_GetGeoStringCompleted);
            client.GetGeoStringAsync();
        }

        void client_GetGeoStringCompleted(object sender, MyGeometryWCFServiceApp.MyGeometryService.GetGeoStringCompletedEventArgs e)
        {    
            txtGeoString.Text = e.Result;
            

        }

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章