Пример #1
0
 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);
 }
Пример #2
0
        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());
        }
Пример #3
0
        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);
        }