コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        /*
         * <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);
        }
コード例 #4
0
        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 + "\"非支持的有效格式。");
            }
        }
コード例 #5
0
 public ServerInstanceBase(InstanceIdentify id, ICatalogProvider catalogProvider, string args)
 {
     _id = id;
     _catalogProvider = catalogProvider;
     _args            = args;
 }
コード例 #6
0
 public ServerInstanceForDb(InstanceIdentify instanceIdentify, ICatalogProvider catalogProvider, string args)
     : base(instanceIdentify, catalogProvider, args)
 {
 }