private void LoadDatasetAndFetclass() { InstanceIdentify id = _tag as InstanceIdentify; try { string url = _parent.Tag.ToString(); Dictionary <string, string> args = new Dictionary <string, string>(); args.Add(HttpCommands.cstArgNameCommand, HttpCommands.cstArgCmdGetCatalogList); args.Add(HttpCommands.cstArgInstanceId, id.Id.ToString()); url = url + HttpCommands.GetCatalogUrl(HttpCommands.cstCatalogPage, args); object[] objs = GetObjectFromHttpStream.GetObject(url) as object[]; if (objs != null && objs.Length > 0) { FetDatasetIdentify[] dsIds = objs[0] as FetDatasetIdentify[]; FetClassIdentify[] fetcIds = objs[1] as FetClassIdentify[]; // if (dsIds != null && dsIds.Length > 0) { foreach (FetDatasetIdentify did in dsIds) { ICatalogItem cit = new CatalogNetFeatureDataset(did.Name, did.Id, did.Description); AddChild(cit); // if (did.FetClassIds != null && did.FetClassIds.Length > 0) { foreach (FetClassIdentify fetcId in did.FetClassIds) { ICatalogItem fcit = new CatalogNetFeatureClass(fetcId.Name, fetcId, fetcId.Description); cit.AddChild(fcit); } } } } // if (fetcIds != null && fetcIds.Length > 0) { foreach (FetClassIdentify fetcId in fetcIds) { ICatalogItem fcit = new CatalogNetFeatureClass(fetcId.Name, fetcId, fetcId.Description); AddChild(fcit); } } } } catch (Exception ex) { MsgBox.ShowError(ex.Message); } }
private static FeatureDataSourceBase GetDataSource(CatalogNetFeatureClass catalogNetFeatureClass) { string uri = null; InstanceIdentify instanceId = null; if (catalogNetFeatureClass.Parent is CatalogNetFeatureDataset) { instanceId = catalogNetFeatureClass.Parent.Parent.Tag as InstanceIdentify; uri = catalogNetFeatureClass.Parent.Parent.Parent.Tag.ToString();//CatalogNetServer // CatalogNetFeatureDataset.CatalogNetInstance.CatalogNetServer } else { instanceId = catalogNetFeatureClass.Parent.Tag as InstanceIdentify; uri = catalogNetFeatureClass.Parent.Parent.Tag.ToString();//CatalogNetServer // CatalogNetFeatureClass.CatalogInstance.CatalogNetServer } FetClassIdentify fetclassId = catalogNetFeatureClass.Tag as FetClassIdentify; return(new ServerDataSource(catalogNetFeatureClass.Name, uri, instanceId, fetclassId)); }
/* * <VectorServerInstances> * <Instance name="北京1:5000万基础矢量服务" descrption="" args =""/> * <Instance name="世界1:5000万基础矢量服务" descrption="" args =""/> * </VectorServerInstances> */ public static IServerInstance[] Parse(string cnfgfile) { XDocument doc = XDocument.Load(cnfgfile); XElement root = doc.Element("VectorServerInstances"); var eles = root.Elements("Instance"); if (eles == null) { return(null); } List <IServerInstance> defs = new List <IServerInstance>(); foreach (XElement ele in eles) { int id = int.Parse(ele.Attribute("id").Value); string name = ele.Attribute("name").Value; string desc = ele.Attribute("description").Value; string args = ele.Attribute("args").Value; InstanceIdentify idobj = new InstanceIdentify(id, name, desc); IServerInstance def = ServerInstanceFactory.GetServerInstance(idobj, args); defs.Add(def); } return(defs.Count > 0 ? defs.ToArray() : null); }
public static IServerInstance GetServerInstance(InstanceIdentify instanceIdentify, string args) { if (args == null) { return(null); } string argc = args.ToUpper(); ICatalogProvider provider = null; if (argc.Contains("$") && argc.Contains("DATA SOURCE") && argc.Contains("USER ID") && !argc.Contains(":")) { provider = new CatalogProviderSpatialDb(args); return(new ServerInstanceForDb(instanceIdentify, provider, args)); } else if (argc.Contains(":")) { provider = new CatalogProviderFile(args); return(new ServerInstanceForFile(instanceIdentify, provider, args)); } else { throw new Exception("指定的实例构造参数\"" + args + "\"非支持的有效格式。"); } }
public ServerInstanceBase(InstanceIdentify id, ICatalogProvider catalogProvider, string args) { _id = id; _catalogProvider = catalogProvider; _args = args; }
public ServerInstanceForDb(InstanceIdentify instanceIdentify, ICatalogProvider catalogProvider, string args) : base(instanceIdentify, catalogProvider, args) { }