「NTS」のLengthIndexedLineクラスを利用して、バス停間の進行距離から、バス位置の座標点を取得する

引き続き、任意の時間のバス位置をプロットする方法を説明します。
前回は、バス停に最も近い、バス路線の座標点を取得したので、
その後の処理からバス位置の座標点を取得する方法を説明します。

①バス路線、バス停、時刻表の入力…済
②任意の時刻から、バス時刻表にあるバス停を抽出…済
③バス停に最も近い、バス路線の座標点を取得…済
④バス路線から③で取得した座標点の区間のバス路線を取得←今ここ
⑤任意の時刻のバス位置を④で取得したバス路線上にプロット←今ここ

1.バスルートから区間ルートを取得

バスルートから、前回取得した、バス停に最も近い座標点間までの、区間ルートを取得します。区間ルートの取得には、ExtractLineByLocationクラスを利用します。

バス路線のルートは以下の通りです。

取得後は以下の通りです。区間ルートが取得されています。

2.バス停間の進行距離を算出

次に、バス停間の停車時刻から、バスの進行距離を算出します。
以下の例では、バス停間の停車時刻が10:58~11:01の間で、11:00のバス位置を取得しています。
バス停間の距離は約1200mあり、バス停間の時間は3分で、2分後のバス位置を取得するので、バス位置は、バス停間の800m進行した位置になります。
※TimeUtil.ToMinitus()は自前のメソッドで、時刻文字から分を返します。

3.バス停間の進行距離から、バス位置をバス路線上にプロットします。

進行距離から、路線上にプロットするには、自前では難しいので、LengthIndexedLineクラスを利用します。
ExtractPointメソッドに、距離を入れると、バス路線上の位置を返してくれます。

取得した座標点を確認してみます。バス路線上の2/3の位置にプロットされています。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする