예제 #1
0
        public bool WriteDocMeta()
        {
            StructProMeta meta = new StructProMeta();

            meta.ProductID    = DateTime.Now.ToFileTime().ToString();
            meta.SubClassName = _subClass;
            FileInfo fInfo = new FileInfo(_file);

            meta.Name           = fInfo.Name.Substring(0, fInfo.Name.LastIndexOf("."));
            meta.Format         = fInfo.Extension.Substring(1, fInfo.Extension.Length - 1);
            meta.Path           = fInfo.FullName;
            meta.Region         = _region;
            meta.ProductionDate = fInfo.CreationTime.ToString("yyyyMMdd");
            meta.Description    = _desc;
            string metaFile = _file.Substring(0, _file.LastIndexOf(".")) + ".xml";

            this.WriteDocMeta2File(metaFile, meta);
            return(true);
        }
예제 #2
0
        private void GetRasterInfo(string file, ref StructProMeta meta)
        {
            IRasterLayer      pRasterLayer         = null;
            ISpatialReference spatialReferenceInfo = null;

            try
            {
                pRasterLayer = new RasterLayerClass();
                pRasterLayer.CreateFromFilePath(_file);
                IRaster      pRaster      = pRasterLayer.Raster;
                IRasterProps pRasterProps = pRaster as IRasterProps;
                meta.Resolution       = pRasterProps.MeanCellSize().X.ToString("f1");
                spatialReferenceInfo  = pRasterProps.SpatialReference;
                meta.CoordinateSystem = spatialReferenceInfo.Name;
                if (spatialReferenceInfo is IProjectedCoordinateSystem)
                {
                    IProjectedCoordinateSystem projectedCoordinateSystem = spatialReferenceInfo as IProjectedCoordinateSystem;
                    meta.MapProjection = projectedCoordinateSystem.Projection.Name;
                    IPoint point = pRasterProps.Extent.UpperLeft;
                    point.Project(projectedCoordinateSystem.GeographicCoordinateSystem);
                    meta.UpperLeftLat = point.Y.ToString();
                    meta.UpperLeftLon = point.X.ToString();
                    point             = pRasterProps.Extent.UpperRight;
                    point.Project(projectedCoordinateSystem.GeographicCoordinateSystem);
                    meta.UpperRightLat = point.Y.ToString();
                    meta.UpperRightLon = point.X.ToString();
                    point = pRasterProps.Extent.LowerRight;
                    point.Project(projectedCoordinateSystem.GeographicCoordinateSystem);
                    meta.LowerRightLat = point.Y.ToString();
                    meta.LowerRightLon = point.X.ToString();
                    point = pRasterProps.Extent.LowerLeft;
                    point.Project(projectedCoordinateSystem.GeographicCoordinateSystem);
                    meta.LowerLeftLat = point.Y.ToString();
                    meta.LowerLeftLon = point.X.ToString();
                }
            }
            catch (Exception)
            { }
        }
예제 #3
0
        private void GetShpInfo(string file, ref StructProMeta meta)
        {
            IFeatureClass     pFeatureClass        = null;
            ISpatialReference spatialReferenceInfo = null;

            try
            {
                pFeatureClass = GFS.Common.EngineAPI.OpenFeatureClass(file);
                IGeoDataset shpDataSet = pFeatureClass as IGeoDataset;
                spatialReferenceInfo  = shpDataSet.SpatialReference;
                meta.CoordinateSystem = spatialReferenceInfo.Name;
                if (spatialReferenceInfo is IProjectedCoordinateSystem)
                {
                    IProjectedCoordinateSystem projectedCoordinateSystem = spatialReferenceInfo as IProjectedCoordinateSystem;
                    meta.MapProjection = projectedCoordinateSystem.Projection.Name;
                    IPoint point = shpDataSet.Extent.UpperLeft;
                    point.Project(projectedCoordinateSystem.GeographicCoordinateSystem);
                    meta.UpperLeftLat = point.Y.ToString();
                    meta.UpperLeftLon = point.X.ToString();
                    point             = shpDataSet.Extent.UpperRight;
                    point.Project(projectedCoordinateSystem.GeographicCoordinateSystem);
                    meta.UpperRightLat = point.Y.ToString();
                    meta.UpperRightLon = point.X.ToString();
                    point = shpDataSet.Extent.LowerRight;
                    point.Project(projectedCoordinateSystem.GeographicCoordinateSystem);
                    meta.LowerRightLat = point.Y.ToString();
                    meta.LowerRightLon = point.X.ToString();
                    point = shpDataSet.Extent.LowerLeft;
                    point.Project(projectedCoordinateSystem.GeographicCoordinateSystem);
                    meta.LowerLeftLat = point.Y.ToString();
                    meta.LowerLeftLon = point.X.ToString();
                }
            }
            catch (Exception)
            { }
        }
예제 #4
0
        private void WriteDocMeta2File(string file, StructProMeta meta)
        {
            XmlTextWriter xmlWriter = null;

            try
            {
                xmlWriter            = new XmlTextWriter(file, Encoding.UTF8);
                xmlWriter.Formatting = Formatting.Indented;
                xmlWriter.WriteStartDocument();
                xmlWriter.WriteStartElement("Production")
                ;
                xmlWriter.WriteStartElement("ProductID");
                xmlWriter.WriteString(meta.ProductID);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("ClassName");
                xmlWriter.WriteString(meta.ClassName);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("SubClassName");
                xmlWriter.WriteString(meta.SubClassName);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Name");
                xmlWriter.WriteString(meta.Name);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Format");
                xmlWriter.WriteString(meta.Format);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Path");
                xmlWriter.WriteString(meta.Path);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Unit");
                xmlWriter.WriteString(meta.Unit);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Region");
                xmlWriter.WriteString(meta.Region);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("ProductionDate");
                xmlWriter.WriteString(meta.ProductionDate);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Description");
                xmlWriter.WriteString(meta.Description);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteEndElement();
            }
            catch (Exception ex)
            {
                GFS.BLL.Log.WriteLog(typeof(TaskHistory), ex);
            }
            finally
            {
                xmlWriter.Flush();
                xmlWriter.Close();
            }
        }
예제 #5
0
        private void Write2File(string file, StructProMeta meta)
        {
            XmlTextWriter xmlWriter = null;

            try
            {
                xmlWriter            = new XmlTextWriter(file, Encoding.UTF8);
                xmlWriter.Formatting = Formatting.Indented;
                xmlWriter.WriteStartDocument();
                xmlWriter.WriteStartElement("Production")
                ;
                xmlWriter.WriteStartElement("ProductID");
                xmlWriter.WriteString(meta.ProductID);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("ClassName");
                xmlWriter.WriteString(meta.ClassName);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("SubClassName");
                xmlWriter.WriteString(meta.SubClassName);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Name");
                xmlWriter.WriteString(meta.Name);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Format");
                xmlWriter.WriteString(meta.Format);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Path");
                xmlWriter.WriteString(meta.Path);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Unit");
                xmlWriter.WriteString(meta.Unit);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("SatelliteSource");
                xmlWriter.WriteString(meta.SatelliteSource);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Resolution");
                xmlWriter.WriteString(meta.Resolution);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("CoordinateSystem");
                xmlWriter.WriteString(meta.CoordinateSystem);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("MapProjection");
                xmlWriter.WriteString(meta.MapProjection);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("UpperLeftLat");
                xmlWriter.WriteString(meta.UpperLeftLat);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("UpperLeftLon");
                xmlWriter.WriteString(meta.UpperLeftLon);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("UpperRightLat");
                xmlWriter.WriteString(meta.UpperRightLat);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("UpperRightLon");
                xmlWriter.WriteString(meta.UpperRightLon);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("LowerRightLat");
                xmlWriter.WriteString(meta.LowerRightLat);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("LowerRightLon");
                xmlWriter.WriteString(meta.LowerRightLon);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("LowerLeftLat");
                xmlWriter.WriteString(meta.LowerLeftLat);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("LowerLeftLon");
                xmlWriter.WriteString(meta.LowerLeftLon);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Region");
                xmlWriter.WriteString(meta.Region);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("ProductionDate");
                xmlWriter.WriteString(meta.ProductionDate);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteStartElement("Description");
                xmlWriter.WriteString(meta.Description);
                xmlWriter.WriteEndElement();

                xmlWriter.WriteEndElement();
            }
            catch (Exception ex)
            {
                GFS.BLL.Log.WriteLog(typeof(TaskHistory), ex);
            }
            finally
            {
                xmlWriter.Flush();
                xmlWriter.Close();
            }
        }