Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSSルーティングエンジン「GraphHopper」と戯れてみた
Search
One compath
November 02, 2016
Programming
0
780
OSSルーティングエンジン「GraphHopper」と戯れてみた
オープンソースで開発されているルーティングエンジン
「GraphHopper」というやつを少し触ってみたという
お話です。
One compath
November 02, 2016
Tweet
Share
More Decks by One compath
See All by One compath
社内の制度を使って新規事業を⽴ち上げてみた話 OCEM#3
mapion
0
180
新規事業のアプリ、Flutterで作ってます〜U-ROUTEのポイ活対応編〜 OCEM#3
mapion
0
190
ウォーキングアプリ「aruku&」ってどうやって作ってるの? OCEM#3
mapion
0
180
ONE COMPATH/ワンコンパス Company Deck For Engineer(会社紹介資料)
mapion
0
7k
ONE COMPATHの地図の開発技術~入門編~ OCEM #2
mapion
0
210
脱レガシー! Aurora PostgreSQLに移行してみた OCEM #2
mapion
1
880
エンジニアなので「技術」で仕事を効率化してみた ~Slack連携でチームの生産性が向上~ OCEM#2
mapion
0
200
20221112_FOSS4G2022Online.pdf
mapion
0
1.7k
ONE COMPATH/ワンコンパス Company Deck(会社資料)
mapion
0
340
Other Decks in Programming
See All in Programming
AI Agent 時代的開發者生存指南
eddie
4
2.1k
Leading Effective Engineering Teams in the AI Era
addyosmani
7
570
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
3
12k
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
6
3k
CSC305 Lecture 09
javiergs
PRO
0
300
Vueのバリデーション、結局どれを選べばいい? ― 自作バリデーションの限界と、脱却までの道のり ― / Which Vue Validation Library Should We Really Use? The Limits of Self-Made Validation and How I Finally Moved On
neginasu
2
300
iOSでSVG画像を扱う
kishikawakatsumi
0
150
alien-signals と自作 OSS で実現する フレームワーク非依存な ロジック共通化の探求 / Exploring Framework-Agnostic Logic Sharing with alien-signals and Custom OSS
aoseyuu
2
150
Introduce Hono CLI
yusukebe
6
3k
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
260
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
350
Devoxx BE - Local Development in the AI Era
kdubois
0
130
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
Documentation Writing (for coders)
carmenintech
75
5.1k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
Thoughts on Productivity
jonyablonski
70
4.9k
Visualization
eitanlees
149
16k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
How STYLIGHT went responsive
nonsquared
100
5.8k
Transcript
OSSルーティングエンジン 「GraphHopper」と戯れてみた FOSS4G 2016 Tokyo LT 株式会社マピオン 中村 浩士
Who? * 中村 浩士 (なかむら こうじ) * @kozy4324 (Twitter, GitHub,
etc…) * 株式会社マピオン所属 * マピオン歴は10年 * 元Webアプリケーションエンジニア * JavaScriptなどのWebフロントエンド周り が得意領域です(でした) * GISは勉強中です!
オープンソースで開発されているルーティングエンジン 「GraphHopper」というやつを少し触ってみたという お話です。 発表の内容
位置情報ログの分析・解析用途でルーティングエンジン を活用したい! * ユーザーの経路検索ログを可視化 * GPSログの経路マッチング * ネットワークベースの到達圏解析 * etc…
モチベーション
OpenStreetMap Wiki にいい感じでまとめられている https://wiki.openstreetmap.org/wiki/Routing 以下のプロダクトが気になった * pgRouting * GraphHopper *
Open Source Routing Machine * Valhalla OSSルーティングエンジン
https://github.com/graphhopper/graphhopper * Java実装のOSSルーティングエンジン * OSMデータで動作する * 動作要件は「JRE (Java 7+) がインストールされてること」
* ただしネットワークデータを展開するメモリ領域は必要 * また起動スクリプトで wget コマンドを一部利用 GraphHopper とは
Getting Started ソースコードの取得と、最新安定版へのチェックアウト ビルド、OSMデータの取得、ネットワークデータの生成、アプリケーションの起動まで 面倒見てくれる起動スクリプトを実行 最後にWebアプリケーションの起動ログが出力されればOK
Getting Started (続き) http://localhost:8989/ で確認可能
日本のエリアで動かす 起動スクリプトのOSMデータの指定を変え、割り当てメモリを2Gほど指定する (デフォルトだとOutOfMemoryエラーが発生する)
JSONレスポンス形式に対応した Web API にも対応 https://github.com/graphhopper/graphhopper/blob/0.8/docs/web/api-doc.md Web API
Web API レスポンスサンプル 「田町駅」から「駒場東大前」までの ルートリクエスト http://localhost:8989/route ?point=35.645736,139.747683 &point=35.658902,139.683363 &points_encoded=false &instructions=false
&debug=true
Ruby で Web API を叩いて、結果を GeoJSON 形式で吐 き出すプログラムを書いてみた。 Ruby から
Web API 経由で利用する
None
None
実行 以下な感じで実行して結果をファイル出力できる。
GitHub でプレビュー
* OSMデータのサイズでダウンロードおよびネットワーク データの展開はそこそこ時間がかかるが、データ処理 時間を除けば「とりあえず触ってみる」の敷居は低い * デフォルトだと車の経路検索となる、歩行者の経路検索 を行う設定カスタマイズを確認したい * 経路マッチングを行う map-matching
なるプロダクトも あり、これも試したい * 位置情報ログの分析・解析用途に利用するにはこれで いい感じっぽい GraphHopper 所感
* GraphHopperの設定カスタマイズや map-matching な どの機能を試して、分析・解析用途の幅を広げたい * 他のルーティングエンジンも評価して、それぞれの特徴 や強みなどを整理したい * ルーティングエンジンを活用した位置情報ログの分析・
解析に取り組む! 今後の展開(個人目標)