【问题标题】:Custom Map With Directions带方向的自定义地图
【发布时间】:2009-08-12 18:34:52
【问题描述】:

我想制作一个地图程序,用于指示校园周围(宿舍、足球场等)和建筑物内(办公室、自助餐厅等)的方向。有没有什么可以帮助促进这一点?

替代方案似乎是我必须创建自己的校园周围点和路径的地图,并进行路径查找。

编辑:澄清一下,我想知道如何将空间感知添加到寻路程序中,以便为路径生成步行方向。示例:对于一个充满办公室的走廊,有两个节点允许一条路径进入走廊,您如何知道某个办公室是在一个节点的左侧,而在另一个节点的右侧?

【问题讨论】:

    标签: map mapping spatial dijkstra


    【解决方案1】:

    如果我对节点使用多边形而不是航点,我可以创建一个导航网格,用于寻路和方向。对于方向和使用矩形节点,如果我从顶部顺时针方向给出从 1 到 4 的矩形编号,我知道如果我进入第 2 面并离开第 1 面,这是右转。或者,如果我进入第 3 面(比如底部)并离开第 4 面,它就是左边。

    【讨论】:

      【解决方案2】:

      如果不知道您想要什么样的界面,这很难回答。它应该是谷歌地图类型的应用程序吗?或者更简单的东西?无论您可能需要定义什么路径 - 哪些事情是无法通过的。

      您可以做很多工作并定义不可通过的地方,然后使用寻路算法穿过草坪;但这比简单的方法更有效:

      1. 制作一张校园地图,所有路线都变灰
      2. 在 PHP/Perl/Ruby/Python/Coldfusion/ASP.Net/Whatever 中定义点和路径
      3. 从用户那里获取起点和终点
      4. 运行 Dijkstra 算法
      5. 显示校园地图,叠加层突出显示路段以照亮其路径。

      【讨论】:

      • 它的功能应该类似于谷歌地图,但在谷歌地图目前不覆盖的区域(办公室、教室等)内。从一栋楼到另一栋楼在校园里走动看起来并不难(使用 A*);即使找到教室看起来也不错。对我来说,复杂的部分是为路线生成方向。我不确定如何赋予程序空间意识(“Go 100 feet. Room 2467B is on the left.” 如果走廊有两个节点可以进入路径,你如何确定左右?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多