これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド v.net.timetablegrass です。
プログラム:
NAME
v.net.タイムテーブル - 時刻表を使用して最短経路を検索します。
KEYWORDS
ベクトル、ネットワーク、最短パス
SYNOPSIS
v.net.タイムテーブル
v.net.タイムテーブル - 助けて
v.net.タイムテーブル =名 [層=string] 出力=名 [アークレイヤー=string]
[ノード層=string] [円弧列=string] [アークバックワードコラム=string]
[ノード列=string] [ウォークレイヤー=string] ルートID=名 停止時間=名 止まる=名
歩行距離=名 [-上書きする] [-助けます] [-詳細] [-静かな] [-ui]
フラグ:
-上書き
出力ファイルが既存のファイルを上書きできるようにする
- 助けて
使用状況の概要を印刷する
-詳細
冗長モジュール出力
- 静かな
静かなモジュール出力
--ui
GUIダイアログを強制的に起動する
パラメーター:
=名 [必要]
入力ベクトルマップの名前
または直接OGRアクセス用のデータソース
層=string
レイヤー番号または名前
ベクトルフィーチャは、さまざまなレイヤーにカテゴリ値を持つことができます。 この数は決定します
使用するレイヤー。 直接OGRアクセスで使用する場合、これはレイヤー名です。
デフォルト: 1
出力=名 [必要]
出力ベクトルマップの名前
アークレイヤー=string
アーク層
ベクトルフィーチャは、さまざまなレイヤーにカテゴリ値を持つことができます。 この数は決定します
使用するレイヤー。 直接OGRアクセスで使用する場合、これはレイヤー名です。
デフォルト: 1
ノード層=string
ノードレイヤー
ベクトルフィーチャは、さまざまなレイヤーにカテゴリ値を持つことができます。 この数は決定します
使用するレイヤー。 直接OGRアクセスで使用する場合、これはレイヤー名です。
デフォルト: 2
円弧列=string
アークフォワード/両方向コスト列(番号)
アークバックワードコラム=string
アーク逆方向コスト列(数値)
ノード列=string
ノードコスト列(数値)
ウォークレイヤー=string
ウォーキング接続または -1 を含むレイヤー番号または名前
単一のベクトルマップを複数のデータベーステーブルに接続できます。 この番号
使用するテーブルを決定します。 直接OGRアクセスで使用する場合、これはレイヤーです
名前。
デフォルト: -1
ルートID=名 [必要]
ルートIDを含む列の名前
デフォルト: ルートID
停止時間=名 [必要]
停止タイムスタンプを持つ列の名前
デフォルト: 停止時間
止まる=名 [必要]
ストップ ID を含む列の名前
デフォルト: 止まる
歩行距離=名 [必要]
歩行距離を含む列の名前
デフォルト: 長さ
DESCRIPTION
v.net.タイムテーブル timetable を使用して XNUMX 点間の最短経路を見つけます。
v.net.タイムテーブル 標準入力から入力を XNUMX 行に XNUMX つのクエリで読み取り、出力を書き込みます
標準出力と 出力 と をレイヤー 1 とレイヤー XNUMX にリンクされたテーブルにマップします。
2. 入力の各行は、次のいずれかの形式に従う必要があります。
PATH_ID FROM_X FROM_Y TO_X TO_Y START_TIME MIN_CHANGE MAX_CHANGES ウォーク_CHANGE
PATH_ID FROM_STOP TO_STOP START_TIME MIN_CHANGE MAX_CHANGES walk_CHANGE
ここで、PATH_ID は、出力マップで使用されるクエリの識別子です。
クエリを区別します。 検索は START_TIME に開始されます。 MIN_CHANGE は最小値を示します
あるルートから別のルートへの変更にかかる時間(包括的)。 MAX_CHANGES は次のことを示します
許可される変更の最大数。無限の場合は -1。 WALK_CHANGE は 1 または 0 になります。
停留所から別の停留所まで歩くことが乗り換えとみなされるかどうか。 最後に、
パスは FROM_STOP から TO_STOP まで、後者の場合は最寄りの停留所から検索されます。
以前の (TO_X, TO_Y) 座標に最も近い停留所への (FROM_X, FROM_Y) 座標
場合。
入力クエリごとに、モジュールは標準への最短パスの説明を出力します。
出力。 たとえば、次の入力に対して以下の表を使用します。
47 130 300 0 1 5 0
次の出力が生成されます。
国道 15 号線、130 番から 15 時に出発、250 番に 22 時に到着
250から22時に出発して300時に24に到着するまで歩く
さらに、モジュールはへのパスを書き込みます。 出力 地図を作成し、すべての情報を保存します
テーブルへのパスを再構築するために必要です。 ストップ/ポイントに対応する表は次のとおりです。
レイヤ 1 にリンクされており、クエリの後は次のようになります。
cat|path_id|stop_id|index|arr_time|dep_time
1|47|130|1|0|15
2|47|250|2|22|22
3|47|300|3|24|24
ここで、CAT はマップ内のポイントのカテゴリ、PATH_ID はパス識別子、
STOP_ID は入力マップで使用されるストップの識別子、INDEX はストップのインデックスです。
パス上の停留所 (つまり、index=1 は最初に訪れた停留所です...) と ARR_TIME、および
DEP_TIME はそれぞれ到着時刻と出発時刻を示します。 の到着時間
経路上の最初の停留所は常に START_TIME と等しく、終点の停留所の出発時刻となります。
は常に到着時間と等しくなります。
第 XNUMX 層にリンクされているテーブルは、停留所間のサブルートに対応しています。 の
上記のクエリに対して次のテーブルが取得されます。
cat|path_id|from_id|to_id|route_id|index|from_time|to_time
1|47|130|250|15|1|15|22
2|47|250|300|-1|2|22|24
ここで、CAT はストップ FROM_ID から TO_ID までの間のサブルートの路線のカテゴリであり、ROUTE_ID は
たどったルートの識別子、または徒歩の場合は -1、INDEX と PATH_ID は上記の通り、
FROM_TIME と TO_TIME は、ルートが通過する間の時間を示します。
当学校区の 出力 マップには、使用された停留所の位置のポイントが含まれています。 サブルートをとる場合
XNUMX つの停止点の間にある場合、対応する XNUMX つの点の間に線分が追加されます。 ついに、
直線セグメントの代わりに、ルートの実際のパスは次のように指定できます。 パス 層。
このパラメータを使用する場合、入力マップの各行には次のような識別子が含まれている必要があります。
路線を通過するすべてのルートのカテゴリ番号。 モジュールはパスを見つけます
XNUMX つのストップの間に移動し、代わりにこのパスを書き込みます。 一駅から徒歩の場合
別の、ストップ間の直線が使用されます。
注意事項
時刻表は、指定された時刻にリンクされたテーブルに保存されます。 層 地図。 時刻表
ルートで構成されており、各ルートは到着が指定された一連の停車駅にすぎません。
回。 XNUMX つの一連の停止が時間だけ異なる場合でも、それらは依然として XNUMX つの停留所に対応します。
ルート。 たとえば、20 分ごとに出発するバス路線があるとします。
毎回まったく同じパスを使用する場合でも、すべてのパスに個別のルートが必要です。
時間。 各ストップ (ポイントのカテゴリ番号で指定) について、テーブルを格納する
ルートに関する情報には、その場所に停車するすべてのルートのリストが含まれている必要があります。
停車地(ルート識別子で指定)と到着時刻。 つまり、テーブルは次のようにする必要があります。
XNUMX つの列が含まれます: stop - テーブルのキーです。 ルートID 停止時間 コラボレー
各トリプルは、停留所に到着するルートと特定の時刻に対応します。 たとえば、
有効なテーブルは次のようになります。
猫|ルートID|停止時間
100 | 5 | 0
130 | 5 | 10
150 | 5 | 20
250 | 5 | 30
300 | 5 | 40
260 | 15 | 5
130 | 15 | 15
250 | 15 | 22
150 | 35 | 17
250 | 35 | 27
300 | 35 | 37
100 | 35 | 50
注意してください 停止時間 は整数なので、任意の単位とオフセットを使用して指定できます。
到着時間。
また、停留所間の徒歩接続は、 ウォーキング の層
地図。 このパラメータが -1 の場合、停留所間の歩行は許可されません。 の
テーブルには XNUMX つの列が含まれている必要があります: stop - テーブルのキーです。 止まる
長さ。 テーブル内のレコードには、次の時間がかかることが記載されています 長さ
停留所から停留所まで歩く時間の単位 止まる。 以下は有効な表です。
猫|体長|止まるまで
250 | 2 | 300
これは、250 番停留所から 300 番停留所までは歩くことができるが、それ以外は歩くことができるということを意味するだけであることに注意してください。
逆に。
例
識別子 130 の停止からカテゴリ 300 の停止までのパスを検索するには、
時間 0、変更の時間単位は 5 回、最大 XNUMX 回の変更、および歩行なし
ルートの変更とみなされる場合は、次のコマンドを使用します。
エコー "47 130 300 0 1 5 0" | v.net.timetable \
入力=バス 出力=パス レイヤー=5 ウォーキング=6 パス=7
一方、場所の座標がわかっている場合は、次のコマンドを実行します。
使用される可能性があります:
エコー "47 10.31 54.31 90.21 28.21 0 1 5 0" | v.net.timetable \
入力=バス 出力=パス レイヤー=5 ウォーキング=6 パス=7
onworks.net サービスを使用してオンラインで v.net.timetablegrass を使用する