2012-02-08 7 views
3

私はpgRoutingのshortest_path()の実装がどのように機能するかを見出そうとしています。pgroutingで最短経路はどのように機能しますか?

これは、関数の定義である:

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. 私はそれがdijkstra.cだと考えている(それは.Cファイルを呼び出し、どのように、それはそれにパラメータを渡す方法ファイル、正しい?)
  2. どのようにしてその.cファイルを取得し、それがどのように動作するかを確認するために持っているデバッグ情報を使ってコンパイルすると、より良く理解できますか?
+0

pgRoutingを使用して最短パスを計算するか、コードの仕組みを理解しようとしていますか? – underdark

+0

コードの仕組みを理解しようとしていますが、コードから大きな画像を取るために.cファイルをどのようにコンパイルできるかを知りたいです。 –

+0

本当にどのように動作するのかを知る必要があります。 .. –

答えて

1

ここにはdijkstra.cのthe sourceがあります。このコードを読んで、関数が何をしているのかを知ることができます。あなたが投稿したSQLは、ネイティブのC関数へのバインディングを示しています。

+0

リンクが壊れていますか? –

+1

直接リンクが更新され、プロジェクトへのトップレベルのリンク:https://github.com/pgRouting/pgrouting – cope360

関連する問題