Engine中可否加载Feature Service?

Engine中可否加载Feature Service?
已邀请:

朱新颖

赞同来自:

【解决办法】:
(1) 可以通过FeatureServiceWorkspaceFactory创建工作空间来遍历Feature Service中的要素类,创建矢量图层进行显示,但是图层的渲染信息会丢失。 
IPropertySet propertySet = new PropertySet();
            propertySet.SetProperty(DATABASE, http://localhost:6080/arcgis/r ... Server);
            IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)new ESRI.ArcGIS.Carto.FeatureServiceWorkspaceFactory();
            IWorkspace workspace = workspaceFactory.Open(propertySet, 0);
            IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
            IEnumDataset enumDataset = workspace.get_Datasets(esriDatasetType.esriDTFeatureClass);
            enumDataset.Reset();
            IDataset dataset = enumDataset.Next();
            IGroupLayer groupLayer = new GroupLayerClass();
            groupLayer.Name = FeatureService;
            while (dataset != null)
            {
                string name = dataset.Name;
                IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(name);
                IFeatureLayer featureLayer = new FeatureLayerClass();
                featureLayer.FeatureClass = featureClass;
                groupLayer.Add(featureLayer as ILayer);
                dataset = enumDataset.Next();
            }
            axMapControl1.AddLayer(groupLayer as ILayer, 0);
            axMapControl1.Refresh();

(2)Engine中没有提供类似于IMapServerLayer、IWMSMapLayer等的可以直接加载显示FeatureService的layer,可以在ArcMap中加载该FeatureService后保存为mxd或者.lyr,然后在Engine中显示

要回复问题请先登录注册