经过与小猫的讨论,我们最后决定做一个NUS Pathfinder。 顾名思义,也就是给它起始地点,目的地,会得到一条最近路线。这个相当于一个小的map engine了,因为它可以在很多地方用。比如说我们想到过的,可以plugin到课程表里,从课程表里拿到目的地,从GPS拿到起始地,这样学生就可以很方便的找到上课的地方。不过我们要先做这个map engine,然后再考虑其他的东西。
我有个大概的思路。我们的地图只是包涵NUS内部的地点,所以它的大小是一定的。我准备拿NUS网站上的地图,它很详尽,精确到了教室级别的,基本上我们每天可能会要去的地方上面都可以找到。最重要的是它是长方形的,这意味着,如果我知道四个角的坐标,我就能够知道里面任何一个建筑的坐标。这可以省去很多麻烦。
地图上每个潜在的目的地,如教室,讲堂,实验室,车站等等都会分配它一个节点。每个节点会记录坐标,楼层数,是不是汽车站,相邻的节点等。相邻的节点必须可以直接走通的,不需要经过其他的节点,这个是需要我实地测量的,这个也是最耗时的。一个节点网络会被组建起来。通过这个网络我们可以用寻路算法如Dijkstra 或者 A*。我比较看好A*,因为我们有特别的节点如车站,在距离很远的情况下,我们更应该选择车站。最后我们就给出一个路线,可以是在地图上标记出来的,也可以是一个list。
小猫准备写一下Spec和Design,不过要等到下个拜一。这两天我就研究了一下我们可能会遇到的问题,比如说地图在哪里可以找到,要有多少个level of detail,怎样pan和zoom地图。今天我准备看看怎样实现GPS。貌似除了GPS,我们还可以用Gyrometer来确定方向,这个可以作为enhancement。
没有评论:
发表评论