0

よくある問題である鉄道ルートを解決しようとしています。そのため、いくつかのターン制限を課しています。

列車は急カーブなどを行うことができないため、最短経路の結果に表示したくないソース エッジとターゲット エッジのリストができました。問題は、pgr_trsp の現在の動作方法では、重み付けされた制限があることです。これは理想的ではありません。これは、重みに基づいてではなく、列車がそのように操縦することは不可能であるという単純な事実によって、決して発生しないためです。通常の状態と速度。

私の質問は、ウェイトを無視して、ターンが許可されているかどうかを確認する可能性はありますか? ドキュメントまたはそれを指定する属性に何か欠けていますか?

pgr_trsp(
    sql text,
    source_eid integer,
    source_pos double precision,
    target_eid integer,
    target_pos double precision,
    directed boolean,
    has_reverse_cost boolean,
    turn_restrict_sql text DEFAULT NULL::text)

おそらく、重みを特定の/魔法の値に設定しますか?

期待される結果は、有効な操作と交差する有効なパスがない場合、出力が期待されないことです。

4

1 に答える 1

1

それが実装されているかどうかはわかりません。コストを -1 に設定してみて、それが機能するかどうかを確認してください。

それ以外の場合は、コストを非常に高い数値に設定することしかできません。これにより、コストの低い代替ルートが強制的に検索されます。次に、結果を確認する必要があります。高コストのターンが含まれていた場合は、要求されたルートは不可能なターンを行わなければ不可能であることを認識する必要があるため、ルートが見つからなかったものとして扱います。

于 2015-11-14T16:08:39.933 に答える