在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;
            

        }

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值