地图高程坐标学习资料表(掌握电子地图的最关键因素)
地图高程坐标学习资料表(掌握电子地图的最关键因素)heights: 存储的是地图的每个栅格的高度, 和cluster中的数据是对应的。 cluster: 存储的是地图栅格数据, 我们可以把一张地图看着图片,那一个个栅格就是地图上的像素点。 但是为了节省数据存储, 我们的每个像素存储的不是RGB一类的颜色值,而是保存的地表特征,比如山,平原, 森林,海,湖等等。cluster的大小很大一部分取决于我们地图的精度,比如50m 20m 10m, 5m等等精度, 精度越小, 数据量越大(精度解释一下: 50:表示我们地表50*50m平方米面积,代表一个像素点,地图精度越高,则描述的地貌越准确)。第一点: 地图的数据结构(参考图一):图一:地图数据目录结构 数据结构说明如下:
当我们在一个陌生的地方的时候, 我们如果要到达自己想去的地方, 那一定想到的是电子地图导航。我们只要在地图上输入自己想去的目的地,就可以很轻松的找到我们想去的地方,甚至于地图帮我们规划好要走的路径,快速到达终点。可是你有想过他们背后是怎么实现的么? 这边博文旨在帮助大家了解电子地图实现的原理。
在我们熟悉的地图中,有百度地图,腾讯地图, 高德地图等等。 在我们使用地图时, 通过浏览器或者其他终端设备打开地图时, 会加载很多图片然后将图片按照顺序拼接在一起就构成了一完整的地图。 那这些图片是怎么来的, 哪这些图片在这些互联网的公司怎么保存的, 在我们打开浏览器时又是如何快速定位到这些地图数据,并迅速将图片传到前台展示的? 要解答这些问题, 我们归纳起来是要掌握一下两点:
1. 地图数据构成(栅格,矢量,平面坐标, 高度), 他的存储格式;
2. 地图坐标和数据的关系(经纬度,GWS84大地坐标)。
第一点: 地图的数据结构(参考图一):
图一:地图数据目录结构
数据结构说明如下:
cluster: 存储的是地图栅格数据, 我们可以把一张地图看着图片,那一个个栅格就是地图上的像素点。 但是为了节省数据存储, 我们的每个像素存储的不是RGB一类的颜色值,而是保存的地表特征,比如山,平原, 森林,海,湖等等。cluster的大小很大一部分取决于我们地图的精度,比如50m 20m 10m, 5m等等精度, 精度越小, 数据量越大(精度解释一下: 50:表示我们地表50*50m平方米面积,代表一个像素点,地图精度越高,则描述的地貌越准确)。
heights: 存储的是地图的每个栅格的高度, 和cluster中的数据是对应的。
Text:则表示的地图上的点信息, 比如:地址信息。
Vector:存储的则是线性的数据, 比如: 桥,公路,高速路,铁路等等信息。
还不比如Building等其他更多信息, 这里就不一一列举,存储形式不过是通过二进制, 点, 线等方式描述的信息。因此,我们只要掌握了地图的二进制结构, 点和线(也就是矢量)存储方式, 那就掌握了地图数据存储的形式。
二进制数据:在图上看到clutter,Heights中的clutter.bil、DEM.bil是二进制数据。而要解读二进制数据, 我们必须解读.hdr和index.txt两个文件信息。
图二:hdr文件内容
图三:Menu文件内容
参考给定的hdr和menu和index内容,我们可以将clutter的地图二进制数据展开为下图数据内容(参考图三):
图四: 展开的二进制数据
每个地图数据对应有个MapInfo, 可以对Menu文件的不同元素赋予不同的颜色,最终我们看到的地图会如百度电子地图的地貌:
图五: 地貌
heights代表的是高度, 其结构和栅格数据的结构是完全一致的。 这里就不在展开介绍了。
第二点: 地图坐标
介绍完地图数据的存储,我们在来解释一下地图坐标。 我们现在通过GPS都可以知道我们在地球上的任何一个点都可以通过经纬度来定位,所以大家对经纬度都很熟悉, 我就不在多讲了。 用经纬度标识球面的地球是很方便的,可是我们在打开所有的电子地图时, 我们看到的地图都是平面展开呈现给我们的(图六)。
图六:电子地图
在平面上,如果用经纬度来存储数据, 会有很多不便。为了能够更好的在平面上显示地理位置,美国提供了大地测量方式来度量地图(WGS84)。 在讲解栅格数据,我们有提到坐标表:ulxmap:2497587.26,ulymap:830189.65, 显示的数据就是大地坐标。 那这里就涉及到坐标转换: 经纬度<-->大地坐标(WGS84)。
关于WGS84是如何将地图映射到平面上, 需要了解“高斯克吕格投影”。 网上资料可以参考(百度百科,上可以搜索到)。 需要有比较好的数学功底来做支撑啦。
我这边有收集到一份地图转换公式, 在转换中,需要用到地图数据的projection.txt 其中记录了地图坐标的转换参数。
图八: 地图坐标转换参数
WGS 84地图坐标系, 49: 所在地图橄榄球切片编号, UTM: UTM投影方法, 0.0 111.0 500000 0: 切片的中心位置坐标(111.0经度, 500000坐标纵轴西移位置)
具体的坐标转化算法, 如果有需要,可以留言 邮件传送, 这里不贴出代码啦。