protected IWmtsService GetWmts1Service(string version = "1.0.0") { OgcServiceType serviceType = OgcServiceType.Wmts; IWmtsService wmts1Service = OgcServiceHelper.GetOgcService(serviceType, version) as IWmtsService; return(wmts1Service); }
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); }
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())); }