@Envywewok

Как правильно прочитать файл формата hgt с помощью C#?

хочу написать функцию которая примет на вход широту и долготу и в ответ отдаст мне высоту в этой точке. Есть файл формата hgt (наша карта высот). Разрешение у него 1201х1201, размер каждой высоты 16 бит (16-разрядные целые числа со знаком) - инфа из доков. Пытаюсь прочитать файл, но получаю не правильные результаты. Вот код. Значение в цикле for только для примера, что бы не читать весь файл
using System;
using System.IO;
using System.Collections;

namespace TextFileReader_csharp
{
    class Class1
    {
        static void Main(string[] args)
        {         
            int b = 0;
            using (FileStream fs = new FileStream("N53E028.hgt", FileMode.Open, FileAccess.Read))
            {
                int counter = 0;
                for (int i = 0; i < 300; i += 2)
                {
                    var buf = new byte[2];
                    fs.Read(buf, 0, 2);
                    var val = (BitConverter.ToInt16(buf, 0));
                    Console.Write(val.ToString() + " ");
                    if (counter % 16 == 0)
                    {
                        Console.WriteLine();
                    }
                    counter++;
                }
                // } while (b != -1); 
                Console.ReadKey();
            }
        }
        
    }
}

5ca60cddc4c83487701252.png
С помощью отдельного софта можно посмотреть диапазоны значений (пруф почему не верно) 5ca60d5da5d9c860242515.png
  • Вопрос задан
  • 205 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы