谈谈地图中的道路绘制 - cynchanpin

时间:2024-03-02 19:38:43

View Post

谈谈地图中的道路绘制

GIS属于可视化领域。一所谓可视化技术是利用计算机图形学和图形处理技术,将数据转化成图形或者图像在屏幕上显示出来,并进行交互处理的理论、方法和技术。个人理解地图中也有几个关键点:

  • 原始数据能够是图像也能够是矢量数据。如我们底图是点、线、面等矢量数据,卫片、街景是图像数据。
  • 渲染即显示到屏幕上,如今各家手机端都是基于opengl,不论图形还是图像终于显示到屏幕都必须像素化(光栅化)。
  • 交互性 地图APP中分量最重的就是交互,背后隐藏的巨大的需求。

 眼下地图中各种Feature数据,楼块是真正三维的。只是仅仅是一些多边形垂直拉出一定高度形成一个挤出体。可是没有贴图。GIS中绝大多数数据还是以二维为主,面数据绘制最简单。标注点数据在预处理时做重叠避让处理绘制时不会相互遮挡,仅仅有线之间有遮挡和层次关系。那么苍白的2D道路数据怎样描写叙述现实世界中复杂的道路交错关系呢?尤其北京的桥最为出名。XX桥上的立交关系很之重要。

涉及以下两个基本技术:

1. 道路立交、平交关系表达

地图中路线用一个有宽度的多边形带表示,有背景描边和前景填充组成。


图中椭圆框为立交关系,蓝色框位置为平交关系。

如果A级路重要度大于B级路。


立交关系比較简单:

B级路_borderB级路_fill

A级路_borderA级路_fill

终于可实现A级路在B级路之上。

平交关系

丁字形路口两处平角关系绘制步骤例如以下:


从左到右绘制顺序为:

A道路_border(灰色),

B道路_border(橙色);

A道路_fill(白色),

B_道路_fill(黄色)

终于AB道路平交效果如第四个子图。

2. ZLevel立交数据

现实世界是3D的。地图是2D的,那么地图能够理解成现实世界的顶视图。

顶视图的信息一定没有*透视模式的信息多。

无论道路立交关系有多少层。顶视图中获取的图像仅仅能看到相交处处于最高层的道路。

ZLevel数据正是这么一份补丁数据,它关联了道路相交处于最高层的道路路段。

例如以下图是定慧桥的卫星图:


它的ZLevel数据和路网例如以下图,黑色路线为道路数据,蓝色粗线为ZLevel数据。

 

终于道路绘制时候,先画路网。

然后再绘制ZLevel数据。终于实现道路的立交层次的表示。

 

3. 各家地图道路绘制效果对照

左图是谷歌地图道路:立交关系与现实一致道路有点宽且没有箭头,“定慧桥”文字一直没出现,这么重要的标注。

右图是腾讯地图:立交关系与现实一致。箭头稍密。有定慧桥标注。

左图是百度地图道路:立交关系蓝色椭圆标注的地方不正确,有箭头,有定慧桥标注。

右图是高德地图道路:没有立交关系都是平交,应该是没有使用ZLevel数据,有箭头,有定慧桥标注。


地图这东西,你越赞赏越懂得赞赏!