/// <summary> /// 读取数据 /// </summary> public static Data.Rinex.RinexObsFile ReadFile(string ObsPath) { Data.Rinex.RinexObsFile ObsFile = null; string lastChar = Geo.Utils.StringUtil.GetLastChar(ObsPath); string lastChar3 = Geo.Utils.StringUtil.GetLastChar(ObsPath, 3); string lastChar5 = Geo.Utils.StringUtil.GetLastChar(ObsPath, 5); if (String.Equals(lastChar, "o", StringComparison.CurrentCultureIgnoreCase) || String.Equals(lastChar3, "rnx", StringComparison.CurrentCultureIgnoreCase)) { var obsFileReader = new RinexObsFileReader(ObsPath); ObsFile = obsFileReader.ReadObsFile(); } if (String.Equals(lastChar, "z", StringComparison.CurrentCultureIgnoreCase) || String.Equals(lastChar3, "crx", StringComparison.CurrentCultureIgnoreCase) || String.Equals(lastChar5, "crx.gz", StringComparison.CurrentCultureIgnoreCase) ) { Geo.IO.InputFileManager inputFileManager = new Geo.IO.InputFileManager(Setting.TempDirectory); ObsPath = inputFileManager.GetLocalFilePath(ObsPath, "*.*o;*.rnx", "*.*"); var obsFileReader = new RinexObsFileReader(ObsPath); ObsFile = obsFileReader.ReadObsFile(); } if (String.Equals(lastChar, "s", StringComparison.CurrentCultureIgnoreCase)) { ObsFile = new TableObsFileReader(ObsPath).Read(); } if (ObsFile == null) { throw new Exception("不支持输入文件格式!"); return(ObsFile); } return(ObsFile); }
/// <summary> /// open one OpenFileDialog to select rinex O files, and create one anyinfo point layer; /// </summary> /// <param name="t"></param> /// <returns></returns> public static Layer OpenAndShowOFileOnMap(string title) { Layer layer = null; OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = Setting.RinexOFileFilter; openFileDialog.Multiselect = true; if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { string[] files = openFileDialog.FileNames; List <AnyInfo.Geometries.Point> lonlats = new List <AnyInfo.Geometries.Point>(); Geo.IO.InputFileManager inputFileManager = new Geo.IO.InputFileManager(Setting.TempDirectory); foreach (var item in files) { var local = inputFileManager.GetLocalFilePath(item, "*.*O;*.rnx", "*.*"); Data.Rinex.RinexObsFileHeader header = new Data.Rinex.RinexObsFileReader(local).GetHeader(); if (header.ApproxXyz == null) { continue; } Geo.Coordinates.GeoCoord lonlat = Geo.Coordinates.CoordTransformer.XyzToGeoCoord(header.ApproxXyz); lonlats.Add(new AnyInfo.Geometries.Point(lonlat, Path.GetFileNameWithoutExtension(item).Substring(0, 4)) { Name = header.MarkerName }); header = null;//释放资源。 } layer = LayerFactory.CreatePointLayer(lonlats, title); } return(layer); }