最短路径如何在pgrouting中工作?

时间:2012-02-08 16:22:30

标签: postgresql pgrouting

我试图找到pgRouting中shortest_path()的实现是如何工作的。

这是函数定义:

CREATE OR REPLACE FUNCTION shortest_path(sql text, source_id integer,target_id integer, directed boolean, has_reverse_cost boolean)  
RETURNS SETOF path_result AS '$libdir/librouting', 'shortest_path'  
  LANGUAGE c IMMUTABLE STRICT  
  COST 1  
  ROWS 1000;  
ALTER FUNCTION shortest_path(text, integer, integer, boolean, boolean) OWNER TO postgres;

我的问题是:

  1. 它如何调用.c文件以及如何将参数传递给它(我相信它是dijkstra.c文件,对吗?)
  2. 如何获取该.c文件并使用它具有的调试信息进行编译,以便了解它是如何工作的,以便我能更好地理解它?

1 个答案:

答案 0 :(得分:1)

这是dijkstra.c的the source。您可以阅读此代码以查看该功能正在执行的操作。您发布的SQL只显示与本机C函数的绑定。