예제 #1
0
        private List <Polygon> readKmzFiles(TableFileRecordUtility fileRecordUtility)
        {
            List <Polygon> allPolygons = new List <Polygon>();

            FileIDNameUtility fileIdUtility = new FileIDNameUtility();

            fileIdUtility.ReadInfoFile(Program.DriveFileIDCsvPath);

            for (int idx = 0; idx < fileRecordUtility.RegionShapeFileRecords.Count; idx++)
            {
                RegionShapeFile rsf = fileRecordUtility.RegionShapeFileRecords[idx];

                KmzFileToPointCollectionUtility kmzUtility = new KmzFileToPointCollectionUtility();
                string      fileId = rsf.LinkToFile.Split("id=")[1];
                KmzFileInfo fInfo  = fileIdUtility.FileInfos.Find(it =>
                                                                  it.FileID.Equals(fileId));

                if (fInfo != null)
                {
                    kmzUtility.GetPolygons(rsf.PlantID, fInfo.FullPath, fileId)
                    .ForEach(x => allPolygons.Add(x));
                }
            }

            return(allPolygons);
        }
        public List <KmzFileInfo> ReadInfoFile(string filepath)
        {
            List <KmzFileInfo> files = new List <KmzFileInfo>();

            if (!string.IsNullOrEmpty(filepath))
            {
                using (TextFieldParser parser = new TextFieldParser(filepath))
                {
                    parser.SetDelimiters(Delimiters);
                    parser.HasFieldsEnclosedInQuotes = true;

                    parser.ReadLine();

                    while (!parser.EndOfData)
                    {
                        string[] fields = parser.ReadFields();

                        try
                        {
                            string name   = fields[1];
                            string origin = fields[2];

                            // Google drive automatically did this, also have to account for changing "'" chars in files.
                            name = FilenameUtility.MakeCompliantFilename(name);

                            KmzFileInfo a = new KmzFileInfo()
                            {
                                FileID   = fields[0],
                                Name     = name,
                                Origin   = origin,
                                FullPath = Path.Combine(Program.KmzFileDirectory, origin, name)
                            };

                            files.Add(a);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine($"Failed to read a row in file info.");
                        }
                    }
                }
            }

            FileInfos = files;
            return(files);
        }