「NTS」のDistanceOpクラスを利用して、バス停に最も近い、バス路線の座標点を取得する

現在、仕事でバス路線の解析をやってまして、バス時刻表とバス路線を元に
任意の時間のバス位置をプロットする作業が発生しました。

中々難易度の高い作業ですが、やりがいがあります。

バス位置をプロットでは、以下の処理を考えました。

  1. バス路線、バス停、時刻表の入力…済
  2. 任意の時刻から、バス時刻表にあるバス停を抽出…済
  3. バス停に最も近い、バス路線の座標点を取得←今ここ
  4. バス路線からⅲで取得した座標点の区間のバス路線を抽出
  5. 任意の時刻のバス位置を算出しⅳで取得した区間バス路線上にプロット

本来、バス停の位置は、バス路線上にプロットすべきなのですが、
GISを使って手入力をしていたので、バス路線上にありません。

そこで、バス停から最も近い、バス路線の座標点を取得してから
バス停間のバス路線を取得することにしました。

1.バス路線及びバス停の位置座標を取得

本来はshpファイルからバス路線及びバス停の位置情報を取得するのですが、
わかりやすいように、手打ちで設定しています。

位置情報を視覚的に確認します。確認には、JTS TestBuilderを使用します。これめちゃくちゃ便利です。GISプログラマーでは必須ですね。

バス路線からバス停が離れています。

2.バス停に最も近い、バス路線の座標点を取得

次に、バス停に最も近い、バス路線の座標点を取得します。座標点の取得には、「NTS」のDistanceOpクラスを使います。
引数を、バス停、バス路線の順にします。注意してください。
これがが逆になると、バス停の位置しか返ってきません。私はこれで何時間か悩みました。

取得した座標点をJTS TestBuilderで確認してみます。

バス路線上に座標点がプロットされています。

Print Friendly, PDF & Email

シェアする

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

フォローする