如何访问在C ++ .HGT SRTM文件?(How do I access .HGT SRTM f

2019-07-04 21:39发布

下面是对文件的一个很好的说明这一主题的类似的问题:

如何阅读NASA .hgt二进制文件

我是相当新的编程一般和我迄今所作的努力是非常有限的。 我的最终目标是访问高程数据并存储它在一个二维数组为方便。 我一直试图在同一时间读取该文件2个字节,因为已经建议,但我不知道下一步该怎么做。 以下是我到目前为止有:

    #include <iostream>
    #include <fstream>

    using namespace std;

    int main () 
    {
        ifstream::pos_type size;
        char * memblock;

        ifstream file ("N34W119.hgt", ios::in|ios::binary|ios::ate);

        if (file.is_open())
        {
            size = 2; 
            memblock = new char [size];

            file.seekg (0, ios::beg);

            file.read (memblock, size);

            //I don't know what to do next




            file.close();
        }
        return 0;
    }

谢谢你的帮助!

Answer 1:

// SRTM_version 1201 or 3601 
int height[SRTM_version][SRTM_version]; 
for ( int r = 0; r < SRTM_version ; r++ ) {
   for ( int c = 0 ; c < SRTM_verision; c++ ) {
      height[r][c] = (memblock[0] << 8) | memblock[1];  
   }
}


文章来源: How do I access .HGT SRTM files in C++?