Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GTFSベースとする場合の項目について #9

Open
toyotamakenkyusyo opened this issue Mar 3, 2019 · 2 comments
Open

GTFSベースとする場合の項目について #9

toyotamakenkyusyo opened this issue Mar 3, 2019 · 2 comments

Comments

@toyotamakenkyusyo
Copy link

現時点で考えられる論点を列挙します。
(1) GTFSとGTFS-JPの違いでもあるが、routeが系統主義をとるか
運賃等の面からも、routeはできるだけ細分化した上で、parent_routeを充実させるのはどうか。
GTFS-JPではjp_parent_route_idが有効に機能していない。各parent_routeに対してroute_color、route_text_color等を設定できないこと、1つのrouteに1つのparent_routeしか設定できないこと、parent_routeのparent_routeが設定できないこと、等の問題がある。
以下、GTFS-JPのroute(できるだけ細分化されたroute)を仮にjp_routeと書く。
(2) 各routeが通るstop_idとstop_sequenceの情報が無いこと
GTFSでは、各routeが通るstop_idとstop_sequenceの情報が無く、stop_times.txtに各tripが通るstop_idとstop_sequenceが含まれている。
特にGTFS-JPでは、stop_times.txtのうち、trip_id、arrival_time、departure_time以外は、同jp_routeの各tripで共通(冗長)と考えられるため、stop_sequence、stop_headsign、pickup_type、drop_off_type、shape_dist_traveled、timepointは各jp_routeでまとめられるのではないか。
その場合、stop_times.txtはtrip_id、arrival_time、departure_time、stop_sequenceとなるが、arrival_timeとdeparture_timeは縦に交互に並べれば、横にtripを並べて時刻表状にできる。
また、複数jp_routeをまとめた時刻表を作る場合、(1)で述べたparent_routeに対してもstop_idとstop_sequenceがほしい。そうでないと、各jp_routeのstop_sequenceを予め調整しておく(柔軟性が無い)か、各jp_routeのstopを適当に寄せ集めるしかない。
なお、GTFS to HTMLでは、timetables.txtのtimetable_idで時刻表に表示する系統群をまとめ、各時刻表に対してtimetable_stop_order.txtで停車地の順序を定めているようである。
また、各jp_routeのstop_idとstop_sequenceがあれば、時刻表が無いデータを作成することができる。これは時刻表無しでバスマップを作成する場合の手間の軽減や、過去の時刻表が入手できない場合にも使える。(余談、便時刻表は公開したくないが、役に立たない停留所時刻表はオープンにしてもいいという弱い標準化の問題はどうするか。)
(3) shapes.txtの問題(重複部分の冗長性)
GTFSのshapes.txtは同じ道路を通る異なるshapeのshape_pointを別々に設定しているため、冗長である上にGPSやその筋屋マップのように各shapeのshape_pointが一致しない可能性がある。
例えば、国土地理院ベクトルタイル道路中心線からshapeを作る事に決めておけば、shapeの一部をなす各折れ線に対して、ベクトルタイルのidをつけることができる事等が考えられる。
情報構造については、アーク・ノード・ポリライン構造や、国土数値情報バスルートのようなやり方等も考えられる。

@ryo-a
Copy link
Member

ryo-a commented Mar 5, 2019

(3)ですが、国土地理院ベクトルタイルはGeoJSONで管理されているようですね。
https://github.com/gsi-cyberjapan/vector-tile-experiment
内容というより規格の話になってしまいますが、データフォーマットにおけるルートの情報でもGeoJSON形式は相性が良さそうに思えますね。

@toyotamakenkyusyo
Copy link
Author

(3)について
GeoJSONもTopoJSONも一長一短ですが、shape_dist_traveledあたりを考えるとそのままでは使いにくそうです。
アーク・ノード構造に分離でき、GTFSとの互換性を保つように案をつくってみました。

  • shapes(object, array)
    • shape_id(string)
    • linestring(object, array)
      • arc_id(string)
      • direction(number)
  • arcs(object, array)
    • arc_id(string)
    • coordinates(object, array)
      • node_id(string)
      • latitude(number)
      • longitude(number)
      • height(number)
      • sequence(number)
      • distance(number)
      • stops(object, array)
        • stop_id(string)
        • distance(number)
  • nodes(obejct, array)
    • node_id(string)
    • latitude(number)
    • longitude(number)
    • height(number)

任意 shapes 描画情報。
必須 ★shape_id key。tripと対応。
必須 linestring 描画情報の一部分を表すアークの配列。各アークは繋がっている必要がある。
必須 arc_id 参照するアーク。
必須 direction アークの向き。1または-1。

必須 arcs アークの集まり。
必須 ★arc_id key。
必須 coordinates アークを構成するノードの座標。
選択 node_id ノードの緯度経度を分離する場合に使用。
選択 latitude 緯度。GTFSのshape_pt_lat。
選択 longitude 経度。GTFSのshape_pt_lon。
任意 height 標高。単位は統一されていればよいが、メートルを推奨。
任意 sequence GTFSのshape_pt_sequence。
任意 distance GTFSのshape_dist_traveled。
任意 stops 次のノードまでの間に位置する停車地の一覧
必須 stop_id stopと対応。
任意 distance GTFSのshape_dist_traveled。

選択 nodes ノードの緯度経度標高を分離する場合に使用するノードの集まり。
必須 ★node_id key。
必須 latitude
必須 longitude
任意 height

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants