protected IWmtsService GetWmts1Service(string version = "1.0.0")
        {
            OgcServiceType serviceType  = OgcServiceType.Wmts;
            IWmtsService   wmts1Service = OgcServiceHelper.GetOgcService(serviceType, version) as IWmtsService;

            return(wmts1Service);
        }
Exemple #2
0
        public async Task <bool> CreateCapabilities(OgcServiceType serviceType, string serviceVersion, string serviceName)
        {
            bool ret = false;

            if (_configContext == null || _servicePathManager == null || string.IsNullOrEmpty(serviceVersion) || string.IsNullOrEmpty(serviceName) || string.IsNullOrEmpty(_host))
            {
                Debug.WriteLine("参数不能为空");
                return(ret);
            }
            ServiceRecord serviceRecord = await _configContext.Services.FirstOrDefaultAsync(x => x.Type == serviceType && x.Version == serviceVersion && x.Name == serviceName);

            if (serviceRecord != null)
            {
                return(ret);
            }
            string serviceDirectory = _servicePathManager.GetServiceDirectory(serviceType, serviceVersion, serviceName);

            if (!Directory.Exists(serviceDirectory))
            {
                Directory.CreateDirectory(serviceDirectory);
            }
            string      servicePath = null;
            IOgcService ogcService  = GetOgcService(serviceType, serviceVersion);

            if (ogcService is IWmtsService wmtsService)
            {
                string routTemplate = GetRoutTemplate <WmtsController>();
                routTemplate = routTemplate.Replace("{serviceName}", serviceName);
                string href = $"{_host}/{routTemplate}";
                //string href = $"{_host}/EMap/Services/{serviceName}/MapServer/Wmts";
                Capabilities capabilities = wmtsService.CreateCapabilities(href);
                servicePath = Path.Combine(serviceDirectory, "WMTSCapabilities.xml");
                SaveCapabilities(wmtsService, servicePath, capabilities);
            }
            else
            {
                return(ret);
            }
            serviceRecord = new ServiceRecord()
            {
                Name    = serviceName,
                Path    = servicePath,
                Type    = serviceType,
                Version = serviceVersion
            };
            _configContext.Services.Add(serviceRecord);
            var result = await _configContext.SaveChangesAsync();

            ret = true;
            return(ret);
        }
Exemple #3
0
        public static IOgcService GetOgcService(OgcServiceType serviceType, string serviceVersion)
        {
            IOgcService ogcService = null;

            if (string.IsNullOrWhiteSpace(serviceVersion))
            {
                return(ogcService);
            }
            switch (serviceType)
            {
            case OgcServiceType.Wfs:
                switch (serviceVersion)
                {
                case "2.0.0":
                    //serviceFasctory = new DsWfs2ServiceFactory();
                    break;
                }
                break;

            case OgcServiceType.Wcs:
                switch (serviceVersion)
                {
                case "2.0.0":
                    //serviceFasctory = new DsWfs2ServiceFactory();
                    break;
                }
                break;

            case OgcServiceType.Wmts:
                switch (serviceVersion)
                {
                case "1.0.0":
                    //DsWmts1ServiceFactory dsWmts1ServiceFactory = new DsWmts1ServiceFactory();
                    ogcService = new GdalWmtsService();
                    break;
                }
                break;

            case OgcServiceType.Wms:
                switch (serviceVersion)
                {
                case "2.0.0":
                    //serviceFasctory = new DsWfs2ServiceFactory();
                    break;
                }
                break;
            }
            return(ogcService);
        }
        public string GetCapabilitiesPath(OgcServiceType serviceType, string serviceVersion, string serviceName)
        {
            string directory = GetServiceDirectory(serviceType, serviceVersion, serviceName);
            string name      = null;

            switch (serviceType)
            {
            case OgcServiceType.Wmts:
                name = "WMTSCapabilities.xml";
                break;
            }
            string path = null;

            if (!string.IsNullOrEmpty(name))
            {
                path = Path.Combine(directory, name);
            }
            return(path);
        }
        public string GetServiceDirectory(OgcServiceType serviceType, string serviceVersion, string serviceName)
        {
            string directory = GetServiceVersionDirectory(serviceType, serviceVersion);

            return(Path.Combine(directory, serviceName));
        }
        public string GetServiceTypeDirectory(OgcServiceType serviceType)
        {
            string directory = GetServicesDirectory();

            return(Path.Combine(directory, serviceType.ToString()));
        }