新闻中心

EEPW首页>嵌入式系统>设计应用> 嵌入式电子地图数据分块组织研究

嵌入式电子地图数据分块组织研究

作者: 时间:2012-12-14 来源:网络 收藏

可以看出,P2和P3的点之间的连线消失了。因为,在网格00的数据里并没有P3点的信息,Line在网格00中显示的只是P1到P2的连接线。同样,如果显示网格10的数据,而不显示网格00的数据和网格11的数据,在网格10中,Line只有一个点P3,而P3到P2、P4的连接线消失了。此时需要添加节点并且断开原来的线段重建拓扑来处理连接线消失的情况。断开线段p2p3,并求得p2p3与网格00、网格10边界的交点p,此时p2p属于网格00中,pp3属于网格10。如图4所示。实际上,路段是不规则的,可能出现如图5所示的情况。

本文引用地址://m.amcfsurvey.com/article/148187.htm

e.JPG


从图5可以看出,一条线从网格射出后,然后再次穿过该网格。并与网格有4个交点。在重建拓扑关系的时候,两次穿过格网中的线要被分成两部分重新建立拓扑,因为线是由按照一定顺序的节点以及节点之间的连线组成。当一条线从一网格射出时,如果不断开该线重建拓扑,则会出现如图6所示的情况,出现了拓扑错误。图6中的线段pp1实际上是不存在的。

2 拓扑重构算法
有时路网结构很复杂,一条线可能多次穿过同一网格,即一条线与网格的交点可能不只4个,如果不重建拓扑,可能会造成电子地图画面更加混乱。所以在每次求得线与网格边界交点的时候,判断该线是否从网格中射出,如果线从网格中射出则断开该线,并求得交点后重新建立拓扑关系。求得线与网格边界交点的算法如下:
(1)假设当前网格的编码为mn。
(2)如果线L上的一个节点P1属于当前网格mn,判断线L上p1的前一个节点P0是否属于当前网格mn,如果p1不属于当前网格mn则转到(3);如果p0属于当前网格mn,则转到(4):如节点p0不属于当前网格mn,如果p1在格网边界转到(4);如果p1不在网格边界上则求P0和p1的连线与网格边界的交点p,并把p的信息保存到网格mn中,转到(4)。此时p节点属于网格mn。
(3)如果线L上的一个节点P1不属于当前网格,判断p1在线L上的前一个点P0是否属于网格mn,如果p0不属于网格mn,则转到(4)。如果节点p0属于当前网格mn,此时线L从网格mn射出,如果p0在网格边界,转到(4);如果p0不在网格边界则求P0和P1的连线与网格mn边界的交点p,把线L断开重建拓扑关系。并把p的信息保存到网格mn中,转到(4)。此时节点p属于网格mn。
(4)如果线L上的点处理完毕则返回,否则继续(2),直到线L上的所有点处理判断完毕。
流程图如图7所示。

f.JPG



3 数据分级组织
导航系统在使用过程中,用户的兴趣点不同,会放大电子地图查看某个区域更详细的信息。把电子地图数据分级适合地图缩放功能的实现。假如电子地图最初显示的地图为x级,放大一次就是显示x+1级地图,缩小一次就显示x-1级地图。
如图8所示,浏览x级地图,假设x级地图显示m(m=4)块格网的数据;此时地图放大一级变成x+1级地图,如果地图放大了s倍(s=2),此时重新读取地图数据,只需读取m/s2块网格即可。相反,如果地图缩小一级,x-1级地图需读取的网格数为m×s2(16块)。

g.JPG


不同级别的地图数据显示的内容不同。在缩放最小一级地图时,只显示地图的区界和背景。假如把地图放大到某一级别,此时电子地图显示地区名称、高速公路以及名称、铁路等地图信息;再次把该电子地图放大一级则显示当前城市的主要地区名称和主要路段。放缩的级别划分根据不同的地理情况处理。可以认为,高级别的地图是对低级别地图的补充。



评论


相关推荐

技术专区

关闭