예제 #1
0
        /* プロパティ **********************************************************/
        /* メソッド **********************************************************/
        /// <summary>
        /// ファイルを読み込み、マップ情報を返す
        /// </summary>
        /// <param name="fileNames">ファイル名</param>
        /// <returns>マップ情報<para>圧縮ファイルの場合、一つのファイルに多数のマップが格納されている場合があるのでListで返します。</para></returns>
        public List<DemSet> ReadHeader(string[] fileNames)
        {
            List<DemSet> mapInfolist = new List<DemSet>();

            //System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew();
            // ヘッダーの読み出し
            Info[] info = new Info[fileNames.Length];
            if (fileNames.Length == 1)                              // ファイルが単一であれば、Parallel処理はかえって重いので分ける
            {

                JpgisGmlReader reader = new JpgisGmlReader();
                info[0] = reader.GetHeader(fileNames[0]);
            }
            else
            {
                Parallel.For(0, fileNames.Length, i =>
                //for(int i = 0; i < fileNames.Length; i++)         // 66 ファイルあると、forよりも並列読み込みの方が若干早い。@2012/5/28
                {
                    //System.Diagnostics.Stopwatch sw2 = System.Diagnostics.Stopwatch.StartNew();
                    JpgisGmlReader reader = new JpgisGmlReader();
                    info[i] = reader.GetHeader(fileNames[i]);
                    //sw2.Stop();                                                     // ストップウォッチを止める
                    //Console.WriteLine("個々のヘッダー読み込み時間: " + sw2.Elapsed); // 結果を表示する
                });
            }
            //sw.Stop();                                                              // ストップウォッチを止める
            //Console.WriteLine("合計のヘッダー読み込み時間: " + sw.Elapsed);          // 結果を表示する
            for (int i = 0; i < fileNames.Length; i++)
            {
                if (info[i].Available == true)
                    mapInfolist.Add(new DemSet(fileNames[i], info[i]));
            }
            return mapInfolist;
        }
예제 #2
0
 /// <summary>
 /// 引数のマップ情報を利用してマップを読み込む
 /// </summary>
 /// <param name="fileName">ファイル名</param>
 /// <param name="info">ファイルに含まれているDEMの情報</param>
 /// <returns>マップのインスタンス</returns>
 public MapDem ReadMap(string fileName, Info info)
 {
     // マップ情報を読み出す
     float[,] height = null;
     switch (info.MapModel)
     {
         case Model.JPGIS2x_GML:
             JpgisGmlReader reader = new JpgisGmlReader();
             height = reader.GetValues(fileName, info.Size);
             break;
     }
     MapDem map = null;
     if (height != null)
     {
         map = new MapDem(info.Field);
         map.SetMapData(height);
     }
     return map;
 }