public static WGS84BoundingBoxType[] GetWGS84BoundingBoxTypes(double xMin, double yMin, double xMax, double yMax) { WGS84BoundingBoxType[] boundingBoxTypes = new WGS84BoundingBoxType[] { new WGS84BoundingBoxType() { LowerCorner = $"{xMin} {yMin}", UpperCorner = $"{xMax} {yMax}" } }; return(boundingBoxTypes); }
private static DatasetType[] CreateDatasets() { List <DatasetType> datasets = new List <DatasetType>(); DatasetType dataset = new DatasetType(); foreach (int id in DatasetsData.GetListOfDatasetIDs()) { dataset = new DatasetType(); dataset.applicationSchema = DatasetsData.SchemaFileUri(id); dataset.datasetId = id.ToString(); dataset.name = DatasetsData.Name(id); dataset.version = DatasetsData.Version(id); List <FeatureTypeType> lstFeatTypes = new List <FeatureTypeType>(); FeatureTypeType featType = new FeatureTypeType(); featType.Name = new XmlQualifiedName(DatasetsData.Name(id), DatasetsData.TargetNamespace(id)); List <MetadataURLType> lstMetaDataUrl = new List <MetadataURLType>(); MetadataURLType metadataUrl = new MetadataURLType(); metadataUrl.href = DatasetsData.TargetNamespace(id); lstMetaDataUrl.Add(metadataUrl); featType.MetadataURL = lstMetaDataUrl.ToArray(); List <Title> lstTitles = new List <Title>(); Title title = new Title(); title.lang = "no"; title.Value = DatasetsData.Name(id); lstTitles.Add(title); featType.Title = lstTitles.ToArray(); featType.Items = new[] { "urn:ogc:def:crs:EPSG::" + DatasetsData.DefaultCrs(id) }; featType.ItemsElementName = new ItemsChoiceType1[1]; featType.ItemsElementName.SetValue(ItemsChoiceType1.DefaultCRS, 0); featType.OutputFormats = new OutputFormatListType(); List <string> formats = new List <string>(); formats.Add("text/xml; subtype=gml/3.2.1"); //DB? featType.OutputFormats.Format = formats.ToArray(); List <WGS84BoundingBoxType> lstWgs84Box = new List <WGS84BoundingBoxType>(); WGS84BoundingBoxType wgs84Box = new WGS84BoundingBoxType(); wgs84Box.LowerCorner = DatasetsData.LowerCornerCoords(id); wgs84Box.UpperCorner = DatasetsData.UpperCornerCoords(id); lstWgs84Box.Add(wgs84Box); if ((wgs84Box.LowerCorner != "") || (wgs84Box.UpperCorner != "")) { featType.WGS84BoundingBox = lstWgs84Box.ToArray(); } lstFeatTypes.Add(featType); dataset.featureTypes = lstFeatTypes.ToArray(); datasets.Add(dataset); } return(datasets.ToArray()); }
public static LayerType GetLayerType(IDataSet dataSet) { LayerType layerType = null; if (dataSet == null) { return(layerType); } LanguageStringType[] titles = new LanguageStringType[] { new LanguageStringType() { Value = dataSet.Name } }; LanguageStringType[] abstracts = new LanguageStringType[] { new LanguageStringType() { Value = dataSet.Name } }; var extent = dataSet.Extent; BoundingBoxType[] boundingBoxs = null; WGS84BoundingBoxType[] WGS84BoundingBoxes = null; ProjectionInfo wgs84PrjInfo = KnownCoordinateSystems.Geographic.World.WGS1984; if (dataSet.Projection.Equals(wgs84PrjInfo))//wgs84 { WGS84BoundingBoxes = new WGS84BoundingBoxType[] { new WGS84BoundingBoxType() { LowerCorner = $"{extent.MinX} {extent.MinY}", UpperCorner = $"{extent.MaxX} {extent.MaxY}" } }; } else { boundingBoxs = new BoundingBoxType[] { new BoundingBoxType() { LowerCorner = $"{extent.MinX} {extent.MinY}", UpperCorner = $"{extent.MaxX} {extent.MaxY}" } }; using (IDataSet tmpDs = DataManager.DefaultDataManager.OpenFile(dataSet.Filename)) { tmpDs.Reproject(wgs84PrjInfo); WGS84BoundingBoxes = new WGS84BoundingBoxType[] { new WGS84BoundingBoxType() { LowerCorner = $"{tmpDs.Extent.MinX} {tmpDs.Extent.MinY}", UpperCorner = $"{tmpDs.Extent.MaxX} {tmpDs.Extent.MaxY}" } }; } } CodeType identifier = new CodeType() { Value = dataSet.Name }; Style style = new Style() { isDefault = true, Identifier = new CodeType() { Value = "default" } }; Style[] styles = new Style[] { style }; string[] formats = new string[] { "image/png", "image/jpg" }; TileMatrixSetLink[] tileMatrixSetLinks = new TileMatrixSetLink[] { new TileMatrixSetLink() { TileMatrixSet = dataSet.Projection.Name } }; layerType = new LayerType() { Title = titles, Abstract = abstracts, BoundingBox = boundingBoxs, WGS84BoundingBox = WGS84BoundingBoxes, Identifier = identifier, Style = styles, Format = formats, TileMatrixSetLink = tileMatrixSetLinks }; return(layerType); }