SlideShare una empresa de Scribd logo
1 de 18
FOSS4G 2019 NIIGATA
大懇親会LT
既存バス停検索サービスでの
バス情報オープンデータ活用
2019年9月14日
バス停検索運営 青い森ウェブ工房 代表 福田匡彦
バス停検索 https://buste.in/ 2019/09/141
・青森県八戸市出身(43歳 独身)
・東京で8年間ほど会社員ウェブプログラマー
・主な職歴
2000年 雑誌「東京ウォー◯ー」のウェブサイト運営会社へ常駐
(PerlのCGI作ってました)
・2004年 ゲーム会社「元気」勤務
(この頃にPerlからPHPへと軸足を移す)
・2008年 地元八戸市へUターンし、青い森ウェブ工房を開業
・2011年6月から全国対応「バス停検索」サービスを運営中
URL https://buste.in/
〜このあたりからバスが趣味から仕事になり始める〜
・標準的なバス情報フォーマット広め隊のメンバー
福田の自己紹介
バス停検索 https://buste.in/ 2019/09/142
「バス停検索」は、青い森ウェブ工房(青森県八戸市)が
運営する無料サービス。
※2011年6月に公開
URL https://buste.in/
http://バス停検索.jp/ でも可
全国のバス停が探せる
「バス停検索」とは?
バス停検索 検索
バス停検索 https://buste.in/ 2019/09/143
 以前からバス停を検索できるサービスが作りたかったが、個
人でのバス停データ収集困難である。(八戸市内で断念…)
 地図上からバス停を探せれば便利なのにという想い。
 2011年4月に国土交通省から国土数値情報「バス停留所デー
タ」が一般公開された事。
 まさに夢のようなデータ、それが国土数値情報だった。
 たとえ、情報の正確度が低くとも、無料でバス停を探したい
需要があると確信したため。
ぶっちゃけ、自分がこういうサービス欲しかったのです(笑)
こうして、趣味から始めたサイトだが、徐々に仕事な感じに
なっています。
当サービスを始めるきっかけ
バス停検索 https://buste.in/ 2019/09/144
完全無料
(広告掲載による収益モデル)
 地図上やGPSで取得した現在位置からバス停を探せる
 公式サイトや有用な関連サイト等へリンクを掲載
 全国の仲間で日々データ更新を行っている
運営のこだわり
 完全無料サービスの継続
 ブックマークできるURLにする(後ですぐ見える)
 データ更新等に協力してくれる方は、無償ではなく有
償ボランティア的に参加してもらう
(趣味に興じて報酬が稼げるって面白いなと思うか
ら!)
バス停検索の特徴
バス停検索 https://buste.in/ 2019/09/145
PHPとMySQLが好きです!
・Webサーバ Apache 2.x系
・使用データベース MySQL 5.x系(8も出てますが)
・SSL(https)対応済み
・主な使用言語
PHP 5.x系(7以降も出てますが)、JavaScript
・地図
OpenStreetMap+leaflet(Google Maps APIから切替え)
バス停検索の動作環境
バス停検索 https://buste.in/ 2019/09/146
いきなりDBネタですが、
周辺にあるバス停を探すSQLが結構重いです…
例えば、↓こういうSQLを使っていて、問題はインデックスが使えず、
特にレコード数が多いと重くなることです。(WHERE句が無いから?)
SELECT id, name, lat, lng, ( 6371 * acos( cos( radians('%s') ) *
cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) +
sin( radians('%s') ) * sin( radians( lat ) ) ) )
AS distance FROM
bustei_data HAVING distance < ‘1’
↓
解決方法はあるのか?
DB関連の悩み
バス停検索 https://buste.in/ 2019/09/147
・「PostgreSQL+PostGIS」なら高速化できるらしい!
でも、今からDBを乗り換えるのは何かと面倒
(仕事で何度かPostgreSQLを使ったけど、良い思い出は無く…)
↓
・MySQLでも「geometry型」を使えば、同様に速くなると知る
(MySQLはGIS的な用途に不向きだと思いこんでました…)
↓
・しかし、MySQL5.7以降でないと、便利な関数が実装されておらず
微妙みたい
(実は現行サーバのMySQLはもっと古いバージョンであり…)
↓
・MySQLを5.7以降にすることに決める(いきなり8もありですが)
解決方法は?
バス停検索 https://buste.in/ 2019/09/148
全国の有志により、一部地域では日々データ更新が
行われています。
しかし、それ以外の地域は残念ながら手付かずな
データが多くあります。
(皆さん本業もあり、多くの時間をかけるのは難しい
もの)
・その対策として
ここ数年で次々と全国各地で公開されているGTFS-
JP形式のオープンデータを活用して、より正確なバ
ス停情報を提供できるのではないか?
バス停検索データは更新してる?
バス停検索 https://buste.in/ 2019/09/149
バス停検索のバス停データ件数
・国土数値情報を元に作成したデータ
約25万件
◯バス会社様提供データ、協力者によるデータ追加
約2万1千件
△廃止や重複等のデータ
約9千件
◎バス停検索 収録合計バス停データ数
約26万2千件
(データ件数は2018年10月現在)
バス停データ追加の成果
バス停検索 https://buste.in/ 2019/09/1410
「GTFS」という名前を聞いたことありますか?
「GTFS(General Transit Feed Specification)」は、
Googleが公開して世界標準となった公共交通情報用
フォーマットです。
日本の路線バス事情へ合わせてアレンジしたものが「標
準的なバス情報フォーマット(通称:GTFS-JP)」です。
なお、「GTFS」は時刻表や路線経路などの「静的」な情
報が対象で、運行状況などの「動的」な情報は、「GTFS
リアルタイム(GTFS-RT)」という別フォーマットがあり
ます。
標準的なバス情報フォーマット
(GTFS-JP)とは?
バス停検索 https://buste.in/ 2019/09/1411
・カンマ区切りのテキストファイルで、zipファイル
に圧縮して配布する
・実はGTFS-JPファイルの中身は大きくて結構複雑
で、仕様を理解するのに時間かかりそう…
・テキストファイルなのに合計数十MBなんて場合も
ある
・データ生成システムの作り方にも影響され、その
癖が強いと、出力されるデータも難解になります…
・最初はバス停データからいじってみると良いか
も?(次はダイヤデータへ)
2019/09/14バス停検索 https://buste.in/
GTFS-JPデータを使うポイント1
12
・初心者向けにおすすめなデータは?
群馬県の日本中央バス、永井バスのGTFS-JPデータ
は素直でわかりやすい作り方だと思います
試しに、適用する運行ダイヤ情報で比較します。
・日本中央バスのデータ内容
calendar.txt 3行
calendar_dates.txt 35行
→項目名の1行目を除き、ざっくり運行ダイヤは2種
類、祝日等の適用例外日は34日分という意味
2019/09/14バス停検索 https://buste.in/
GTFS-JPデータを使うポイント2
13
これに対して、同じ群馬県内の関越交通を例に取る
と、
calendar.txt 54行
calendar_dates.txt 1903行
のように行数も多くなり、ダイヤの種類も多く初心
者にはつらい感じがします…
まずは、永井バス、日本中央バスで慣れてから、ス
テップアップがいいかもしれません♪
(※個人の感想です)
2019/09/14バス停検索 https://buste.in/
GTFS-JPデータを使うポイント3
14
・ダウンロードURLが毎回変わる懸念
毎回zipファイル名が変わると困る…
※青森市営バスや永井バス、日本中央バス、中津川市な
どはURLが基本変わらず、使いやすい事例です!
(サイトリニューアル等の例外はあります)
・ファイル取得を自動化している場合の問題
もし、zipファイル名が変わり、もし旧ファイルはそのま
まだと、最新ファイルの存在に気が付かない懸念あり
→URL変更が無いかの確認を目視で必要になるかも?
2019/09/14バス停検索 https://buste.in/
オープンデータの活用で
気がついた問題1
15
・バス停名称の表記ゆれ
同一バス停でも事業者毎に別表記だと、名寄せの
手間が必要になる…
→そのまま使えない
・主に共同運行のバスなどで、運行便が重複データ
となる懸念
→同時に別な2便が来るのかと誤解される恐れ
(例:同じ共同運行便が、「◯◯交通」と「□□バ
ス」それぞれのデータ内に存在する)
2019/09/14バス停検索 https://buste.in/
オープンデータの活用で
気がついた問題2
16
ただいま、八戸市営バスのGTFS-JP
データを作り、Googleマップへ掲載と
オープンデータ化すべく、地元の産官
学が力を合わせて、データ作成を進め
ています。
それを福田もお手伝いしています。
地元八戸のGTFS-JPデータ
作りをお手伝い
バス停検索 https://buste.in/ 2019/09/1417
 青い森ウェブ工房 代表 福田匡彦
 ご質問やお問い合わせは下記へ
URL: https://8nohe.info/work/
Twitter @8nohe
 標準的なバス情報フォーマット広め隊
URL: https://www.gtfs.jp/
2019年9月14日
ご清聴ありがとうございました
バス停検索 https://buste.in/ 2019/09/1418

Más contenido relacionado

Similar a 既存バス停検索サービスでの バス情報オープンデータ活用

全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験青い森ウェブ工房(福田匡彦)
 
サラリーマンだけど コワーキングスペースの運営に 関わってみた
サラリーマンだけどコワーキングスペースの運営に関わってみたサラリーマンだけどコワーキングスペースの運営に関わってみた
サラリーマンだけど コワーキングスペースの運営に 関わってみたYuki Okamoto
 
モバイルファースト かすたまいずをカスタマインで やってみた
モバイルファースト かすたまいずをカスタマインで やってみたモバイルファースト かすたまいずをカスタマインで やってみた
モバイルファースト かすたまいずをカスタマインで やってみたMasao Niizuma
 
2017年下期コーポレートフェロー募集資料 活動紹介 葛城友香さん
2017年下期コーポレートフェロー募集資料 活動紹介 葛城友香さん2017年下期コーポレートフェロー募集資料 活動紹介 葛城友香さん
2017年下期コーポレートフェロー募集資料 活動紹介 葛城友香さんCode for Japan
 
2019年Web制作現場のリアルな話
2019年Web制作現場のリアルな話2019年Web制作現場のリアルな話
2019年Web制作現場のリアルな話Umi Yamamoto
 
06 rpa operation without failure 20191102
06 rpa operation without failure 2019110206 rpa operation without failure 20191102
06 rpa operation without failure 20191102Hinemos
 
Flow用kintoneカスタムコネクタ - スマホで使える「ふとアプリ」を作ってみた
Flow用kintoneカスタムコネクタ - スマホで使える「ふとアプリ」を作ってみたFlow用kintoneカスタムコネクタ - スマホで使える「ふとアプリ」を作ってみた
Flow用kintoneカスタムコネクタ - スマホで使える「ふとアプリ」を作ってみたMasao Niizuma
 
インターネットを活用した移住促進について(第1回いなかみライフセミナー)
インターネットを活用した移住促進について(第1回いなかみライフセミナー)インターネットを活用した移住促進について(第1回いなかみライフセミナー)
インターネットを活用した移住促進について(第1回いなかみライフセミナー)Noriaki Sugimoto
 
Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Yusuke Wada
 
青森ITビジネス・マッチング交流会
青森ITビジネス・マッチング交流会青森ITビジネス・マッチング交流会
青森ITビジネス・マッチング交流会Takehito Tanabe
 
江戸川大学講義資料20140422
江戸川大学講義資料20140422江戸川大学講義資料20140422
江戸川大学講義資料20140422Osamu Ise
 
Casual data analysis_with_python_vol1
Casual data analysis_with_python_vol1Casual data analysis_with_python_vol1
Casual data analysis_with_python_vol1KazuhiroSato8
 

Similar a 既存バス停検索サービスでの バス情報オープンデータ活用 (13)

GTFSオープンデータの品質向上活動について
GTFSオープンデータの品質向上活動についてGTFSオープンデータの品質向上活動について
GTFSオープンデータの品質向上活動について
 
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
全国700個以上の路線バスGTFS-JPオープンデータを毎日取得、反映し続けて得られた経験
 
サラリーマンだけど コワーキングスペースの運営に 関わってみた
サラリーマンだけどコワーキングスペースの運営に関わってみたサラリーマンだけどコワーキングスペースの運営に関わってみた
サラリーマンだけど コワーキングスペースの運営に 関わってみた
 
モバイルファースト かすたまいずをカスタマインで やってみた
モバイルファースト かすたまいずをカスタマインで やってみたモバイルファースト かすたまいずをカスタマインで やってみた
モバイルファースト かすたまいずをカスタマインで やってみた
 
2017年下期コーポレートフェロー募集資料 活動紹介 葛城友香さん
2017年下期コーポレートフェロー募集資料 活動紹介 葛城友香さん2017年下期コーポレートフェロー募集資料 活動紹介 葛城友香さん
2017年下期コーポレートフェロー募集資料 活動紹介 葛城友香さん
 
2019年Web制作現場のリアルな話
2019年Web制作現場のリアルな話2019年Web制作現場のリアルな話
2019年Web制作現場のリアルな話
 
06 rpa operation without failure 20191102
06 rpa operation without failure 2019110206 rpa operation without failure 20191102
06 rpa operation without failure 20191102
 
Flow用kintoneカスタムコネクタ - スマホで使える「ふとアプリ」を作ってみた
Flow用kintoneカスタムコネクタ - スマホで使える「ふとアプリ」を作ってみたFlow用kintoneカスタムコネクタ - スマホで使える「ふとアプリ」を作ってみた
Flow用kintoneカスタムコネクタ - スマホで使える「ふとアプリ」を作ってみた
 
インターネットを活用した移住促進について(第1回いなかみライフセミナー)
インターネットを活用した移住促進について(第1回いなかみライフセミナー)インターネットを活用した移住促進について(第1回いなかみライフセミナー)
インターネットを活用した移住促進について(第1回いなかみライフセミナー)
 
Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤Webサービスのコンテンツパターン 或いはデータの活⽤
Webサービスのコンテンツパターン 或いはデータの活⽤
 
青森ITビジネス・マッチング交流会
青森ITビジネス・マッチング交流会青森ITビジネス・マッチング交流会
青森ITビジネス・マッチング交流会
 
江戸川大学講義資料20140422
江戸川大学講義資料20140422江戸川大学講義資料20140422
江戸川大学講義資料20140422
 
Casual data analysis_with_python_vol1
Casual data analysis_with_python_vol1Casual data analysis_with_python_vol1
Casual data analysis_with_python_vol1
 

Último

Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docxWindows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docxivanwang53
 
動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Components動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Componentsokitamasashi
 
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーンWindowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーンivanwang53
 
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法ivanwang53
 
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]Taka Narita
 
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元ivanwang53
 

Último (6)

Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docxWindows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
Windows Defenderのフル・クイック・カスタム・オフラインスキャンを実行する方法.docx
 
動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Components動的 & 非同期コンポーネント / Dynamic & Async Components
動的 & 非同期コンポーネント / Dynamic & Async Components
 
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーンWindowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
Windowsアップデート後の黒い画面を修正する方法|データ復元|ブラックスクリーン
 
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
ダウンロードがダウンロード(Downloads)フォルダに表示されない」問題の対処法
 
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
あらゆる通信環境で切れない「ネットモーション」のモバイルアクセス [NetMotion]
 
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
Windows 10、Windows 11の付箋を簡単に復元する6つの方法|データ復元
 

既存バス停検索サービスでの バス情報オープンデータ活用

Notas del editor

  1. ここまでで半分くらい