操纵地图

时间:2010-08-05 15:26:00

标签: php mapping svg gis autocad

给定一组平面图(在Autocad,svg或任何需要的格式......),我想以编程方式生成从A点到B点的指示。基本上我想说:“我怎么得到从101室到143室?“ (或从房间101到房间323的三重奖励积分)。任何人有任何想法如何去做?虽然我知道C(++),Erlang,PHP和Python是最好的,但我现在对语言无关。我确实意识到这是一项艰巨的任务。

谢谢!

3 个答案:

答案 0 :(得分:3)

这个词的总称是pathfinding。已经针对2D图广泛地研究了该问题。我会将问题分解为这些部分:

  1. 将地板的CAD模型转换为房间,门,间隔的简单模型。
  2. 在该层上从源到目的地运行路径寻找算法,并对人体运动进行约束。
  3. 将结果转换为文字方向(向右转,直行等)。添加地标可能会有所帮助
  4. 对于多个楼层,您可以使用一楼实施,从(例如)104到1楼楼梯,3楼楼梯到311.将CAD绘图转换为语义上有用的格式似乎是最困难的走向我。

答案 1 :(得分:1)

我知道你想使用php,但我推荐使用python和networkx。你必须将你的建筑转换成一组(原点,目的地,成本),然后运行TSP(如仍然站立的那样)或A *或Dijkstra

答案 2 :(得分:0)

了解traveling salesman algorithm从A点到B点有无数条路径。您在寻找最短路径吗?你的交通工具是什么?你可以飞行还是被迫走路或开车?这些是决定解决方案的因素。