如何在2d地图中显示多个hgt

时间:2014-01-11 19:57:03

标签: c++ opengl geography

当我想要显示多个hgt文件时,我有问题。 当我有一张地图时,这不是问题。例如对于2d地图,我可以记住顶点 vec2(i,j)*vec2(0.01,-0.01)

但我需要有多张地图。我需要使用Equirectangular投影 所以我的问题是如何将i,j位置从hgt文件转换为经度和纬度。 我的想法是,如果我们有文件N45E016。

x = 44 + i/1201;
y = 16 + j/1201;

但我认为这是错误的。因为x取决于y; 在得到x和y后,我可以计算Equirectangular投影。 所以我的问题是如何做得更好。

1 个答案:

答案 0 :(得分:1)

试试这个:

x = xmin + dx * i / (w - 1)
y = ymin + dy * j / (h - 1)

使用:

dx = xmax - xmin
dy = ymax - ymin

xminxmax是最小/最大值。 tile的经度(hgt文件), yminymax是最小/最大值。瓷砖的纬度, wh是图块的宽度和高度(沿经度/纬度轴的样本数)。

您可能需要稍微调整建议的公式,具体取决于是否沿着图块边界复制样本。