GIS属于可视化领域。一所谓可视化技术是利用计算机图形学和图形处理技术,将数据转化成图形或者图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。个人理解地图中也有几个关键点:
- 原始数据能够是图像也能够是矢量数据。如我们底图是点、线、面等矢量数据,卫片、街景是图像数据。
- 渲染即显示到屏幕上,如今各家手机端都是基于opengl,不论图形还是图像终于显示到屏幕都必须像素化(光栅化)。
- 交互性 地图APP中分量最重的就是交互,背后隐藏的巨大的需求。
眼下地图中各种Feature数据,楼块是真正三维的。只是仅仅是一些多边形垂直拉出一定高度形成一个挤出体。可是没有贴图。GIS中绝大多数数据还是以二维为主,面数据绘制最简单。标注点数据在预处理时做重叠避让处理绘制时不会相互遮挡,仅仅有线之间有遮挡和层次关系。那么苍白的2D道路数据怎样描写叙述现实世界中复杂的道路交错关系呢?尤其北京的桥最为出名。XX桥上的立交关系很之重要。
涉及以下两个基本技术:
1. 道路立交、平交关系表达
地图中路线用一个有宽度的多边形带表示,有背景描边和前景填充组成。
图中椭圆框为立交关系,蓝色框位置为平交关系。
如果A级路重要度大于B级路。
立交关系比較简单:
B级路_border,B级路_fill。
A级路_border。A级路_fill
终于可实现A级路在B级路之上。
平交关系:
丁字形路口两处平角关系绘制步骤例如以下:
从左到右绘制顺序为:
A道路_border(灰色),
B道路_border(橙色);
A道路_fill(白色),
B_道路_fill(黄色)
终于A、B道路平交效果如第四个子图。
2. ZLevel立交数据
现实世界是3D的。地图是2D的,那么地图能够理解成现实世界的顶视图。
顶视图的信息一定没有自由透视模式的信息多。
无论道路立交关系有多少层。顶视图中获取的图像仅仅能看到相交处处于最高层的道路。
ZLevel数据正是这么一份补丁数据,它关联了道路相交处于最高层的道路路段。
例如以下图是定慧桥的卫星图:
它的ZLevel数据和路网例如以下图,黑色路线为道路数据,蓝色粗线为ZLevel数据。
终于道路绘制时候,先画路网。
然后再绘制ZLevel数据。终于实现道路的立交层次的表示。
3. 各家地图道路绘制效果对照
左图是谷歌地图道路:立交关系与现实一致道路有点宽且没有箭头,“定慧桥”文字一直没出现,这么重要的标注。
右图是腾讯地图:立交关系与现实一致。箭头稍密。有定慧桥标注。
左图是百度地图道路:立交关系蓝色椭圆标注的地方不正确,有箭头,有定慧桥标注。
右图是高德地图道路:没有立交关系都是平交,应该是没有使用ZLevel数据,有箭头,有定慧桥标注。
地图这东西,你越赞赏越懂得赞赏!