ナビタイムのルート検索APIを使って開発してみた(インターン基礎編)
ナビタイムジャパンでは、年に数回、エンジニア体験インターンシップを開催しています。
今回は、2021年2月に実施した、インターンシップ基礎編での、ルート検索APIを使ったWebアプリケーション開発に関して、開発の流れや、APIを使ってみた感想などをご紹介いたします。
また、インターンではなく、実際に業務や研究などでAPIを使ってみたい、というときの参考として、登録~利用までの流れも掲載していますので、是非参考にしてみてください。
イベント概要
●実施時期:2021年2月(3日間)
●参加方法:オンラインで実施
●参加者の条件:大学、大学院の学生
●内容:ナビタイムジャパンが研究開発し、実際のサービス開発で利用しているルート検索や地図表示、スポット検索等のAPIを用いて、Webアプリケーションを開発することで、当社での開発フローの一端を経験する
●参加方法:オンラインで実施
●参加者の条件:大学、大学院の学生
●内容:ナビタイムジャパンが研究開発し、実際のサービス開発で利用しているルート検索や地図表示、スポット検索等のAPIを用いて、Webアプリケーションを開発することで、当社での開発フローの一端を経験する
成果物(ゴール)
行きたいスポットを探して、ルート検索を行うことができるWebアプリ
利用したAPI
準備物
・Google Chrome(ブラウザ)
・JSONView(Google Chromeの拡張機能)
・Visual Studio Code(テキストエディタ)
・JSONView(Google Chromeの拡張機能)
・Visual Studio Code(テキストエディタ)
開発の流れ
インターンでの開発の流れはざっくり以下の通りです。
1)NAVITIME API(ルート検索APIなど)の基本について講義
2)APIへリクエストし、レスポンスを確認する
3)html、CSS、JavaScriptを作成する(適宜メンターへ質問)
1)NAVITIME API(ルート検索APIなど)の基本について講義
2)APIへリクエストし、レスポンスを確認する
3)html、CSS、JavaScriptを作成する(適宜メンターへ質問)
[参考] 開発の流れ(通常利用する場合)
通常NAVITIME APIを使って画面を作る場合の手順についても参考までに以下で紹介します。
1)NAVITIME API(ルート検索APIなど)の基本を確認する
APIの仕様については、こちらの仕様書で一般公開しています。どのようなAPIがあるのか、リクエストするパラメータやレスポンスについて確認してみてください。
NAVITIMEのAPIについて簡単に説明すると
・httpsリクエストすると、ナビタイムのサーバーからJSON形式(地図の場合はJavaScript)で各種データを返却します
・様々な移動手段のルート検索、地図、スポット検索等をワンストップで提供している点が特長です
サービスの概要資料はこちらからダウンロード可能です(フォームに記載のメール宛にダウンロードリンクが送られます)。
APIの仕様については、こちらの仕様書で一般公開しています。どのようなAPIがあるのか、リクエストするパラメータやレスポンスについて確認してみてください。
NAVITIMEのAPIについて簡単に説明すると
・httpsリクエストすると、ナビタイムのサーバーからJSON形式(地図の場合はJavaScript)で各種データを返却します
・様々な移動手段のルート検索、地図、スポット検索等をワンストップで提供している点が特長です
サービスの概要資料はこちらからダウンロード可能です(フォームに記載のメール宛にダウンロードリンクが送られます)。
2)APIの利用に必要な認証情報を入手する
NAVITIME APIを利用するには、認証情報が必要です。認証情報の入手方法は、2021年5月現在、2パターンあります。
NAVITIME APIを利用するには、認証情報が必要です。認証情報の入手方法は、2021年5月現在、2パターンあります。
◆APIマーケットで入手する
PoCなど短期間での利用、月間アクセス数が少ない場合は、こちらの方法をお勧めします。また、個人の方が利用する場合は、もう1つの方法は利用できませんので、この方法でご利用ください。
①APIマーケット「Rakuten RapidAPI」でユーザー登録を行う
APIマーケットに関しては、こちらのページで概要をご紹介しています(登録の導線もあります)。
②NAVITIMEから提供しているサービスから、使いたいものを選ぶ
③料金プランページから、利用したいプランを選択する
BASICプランであれば、500アクセスまで無料です。
利用できる機能は、直販の場合と異なりますので、ご注意ください。
PoCなど短期間での利用、月間アクセス数が少ない場合は、こちらの方法をお勧めします。また、個人の方が利用する場合は、もう1つの方法は利用できませんので、この方法でご利用ください。
①APIマーケット「Rakuten RapidAPI」でユーザー登録を行う
APIマーケットに関しては、こちらのページで概要をご紹介しています(登録の導線もあります)。
②NAVITIMEから提供しているサービスから、使いたいものを選ぶ
③料金プランページから、利用したいプランを選択する
BASICプランであれば、500アクセスまで無料です。
利用できる機能は、直販の場合と異なりますので、ご注意ください。
◆ナビタイムに問い合わせて入手する(直販)
アクセス数が多い、オプション機能の利用を想定、技術サポートや案件のご相談が必要な場合は、こちらの方法でご利用ください。
※個人の方は、直販でのご利用はできません。
以下に、90日お試し利用の場合の手順をご紹介します。
①「90日お試し利用申し込み」フォームに、必要事項を記載して送信
②お申し込み後、2~4営業日で、担当者より認証情報のご連絡(事前に確認のご連絡を行う場合もあります)
アクセス数が多い、オプション機能の利用を想定、技術サポートや案件のご相談が必要な場合は、こちらの方法でご利用ください。
※個人の方は、直販でのご利用はできません。
以下に、90日お試し利用の場合の手順をご紹介します。
①「90日お試し利用申し込み」フォームに、必要事項を記載して送信
②お申し込み後、2~4営業日で、担当者より認証情報のご連絡(事前に確認のご連絡を行う場合もあります)
3)APIへリクエストし、レスポンスを確認する
ルート検索(車)APIを例にリクエストについてご紹介します。
●ルート検索(車)のリクエスト例
(出発地:東京都庁、目的地:柏駅、検索条件:有料道路利用、時間優先、出発時刻:2021年6月1日8時)
HOSTやCIDについては、担当者よりご連絡しています(リクエストにはこのほか署名鍵が必要です)。
APIマーケットを利用する場合は、リクエスト先が「https://navitime-route-car.p.rapidapi.com/route_car」となり、またヘッダーにRakuten RapidAPIのx-rapidapi-keyを付与する必要があります。Postmanなどのツールを使えば簡単に確認することができます。
ルート検索(車)APIを例にリクエストについてご紹介します。
●ルート検索(車)のリクエスト例
(出発地:東京都庁、目的地:柏駅、検索条件:有料道路利用、時間優先、出発時刻:2021年6月1日8時)
https://{HOST}/{CID}/v1/route_car?start={"lat":35.689457,"lon":139.691935,"name":"東京都庁"}&goal=00007423&condition=toll_time&start_time=2021-06-01T08:00:00
HOSTやCIDについては、担当者よりご連絡しています(リクエストにはこのほか署名鍵が必要です)。
APIマーケットを利用する場合は、リクエスト先が「https://navitime-route-car.p.rapidapi.com/route_car」となり、またヘッダーにRakuten RapidAPIのx-rapidapi-keyを付与する必要があります。Postmanなどのツールを使えば簡単に確認することができます。
4)html、CSS、JavaScriptを作成する
3のリクエストをhtml等のコードに組み込んで、必要な画面を作成します。
実装のサンプルについては、仕様書内のExamplesメニュー内で公開していますので、確認してみてください。
以下は公開されているサンプルの例です。
●ルートプランニング
公共交通機関+徒歩、車、自転車、徒歩を選んで、設定した経由地を巡るルート検索を行うことができます。
●行ける範囲検索
地図上で指定された地点から、入力された条件下で行ける範囲を確認することができます。直線での範囲ではなく、実際のルート検索にもとづく検索ができることが特長です。
3のリクエストをhtml等のコードに組み込んで、必要な画面を作成します。
実装のサンプルについては、仕様書内のExamplesメニュー内で公開していますので、確認してみてください。
以下は公開されているサンプルの例です。
●ルートプランニング
公共交通機関+徒歩、車、自転車、徒歩を選んで、設定した経由地を巡るルート検索を行うことができます。
●行ける範囲検索
地図上で指定された地点から、入力された条件下で行ける範囲を確認することができます。直線での範囲ではなく、実際のルート検索にもとづく検索ができることが特長です。
感想を伺いました
3日間の体験期間中に、ナビタイムの社員がメンターとなりフォローを行いながら、参加者全員が、ルート検索API等を使って成果物の作成を完了することができました。
参加された学生さん3名(いずれも大学3年生)に、参加した感想を伺いました。
参加された学生さん3名(いずれも大学3年生)に、参加した感想を伺いました。
Q. 3日間、イベントに参加してみてどうでしたか?
最初は自分にとって課題の難易度が高く不安でしたが、適宜質問しながら開発を進め、最終的にゴールとなる成果物を作ることができました。知識をアウトプットする力がついたと思います。
最初は不安だったのですね。3日間でゴールの成果物が作成でき、ご自身の成長にもつながったとのことでよかったです。
最初は不安だったのですね。3日間でゴールの成果物が作成でき、ご自身の成長にもつながったとのことでよかったです。
大学ではフリーの地図ライブラリを持ってきて、探索アルゴリズムを作る、ルートの描画を実装する、ということを自身で行っていましたが、APIを利用することで、簡単に実用的なものにできることに感動しました。
ご自身でそういったものを作られていたことに驚きですが、APIの利便性を感じて頂けて嬉しいですね。
ご自身でそういったものを作られていたことに驚きですが、APIの利便性を感じて頂けて嬉しいですね。
Q. 「NAVITIME API」についてよいと感じた点があれば教えてください。
ルート検索APIに関して、単純にスタート・ゴール間の経路を取得するだけでなく、降車する際の推奨車両や、駅の出入り口など細かい情報が取れるのが魅力的でした。レスポンス例やモデルのコードがあり、参考になりました。
さまざまなデータがあり、そこまで複雑ではないAPIを叩くだけで必要とするデータが得られる点が非常に使いやすいと思いました。
他のAPIを利用した経験はありませんが、3日間である程度使えるようになったので、使いやすいサービスだと思います。
皆さん、APIによって得られる情報や、APIの使い勝手について、よいと感じて頂いたのですね。ありがとうございます。
今後も、高品質な情報のさらなる拡充や、仕様書含めAPIの使いやすさの追求を行っていきたいと思います。
さまざまなデータがあり、そこまで複雑ではないAPIを叩くだけで必要とするデータが得られる点が非常に使いやすいと思いました。
他のAPIを利用した経験はありませんが、3日間である程度使えるようになったので、使いやすいサービスだと思います。
皆さん、APIによって得られる情報や、APIの使い勝手について、よいと感じて頂いたのですね。ありがとうございます。
今後も、高品質な情報のさらなる拡充や、仕様書含めAPIの使いやすさの追求を行っていきたいと思います。
Q. 「NAVITIME API」について改善点や、今後ほしい機能があれば教えてください。
レスポンスの内容が、他のAPIで取得しないとわからないものがあったので、仕様書にそのリクエスト方法がすぐにわかるような記載があるとより使いやすくなりそうです。
APIで返された情報をよりわかりやすく可視化された状態で確認できる機能があれば開発がしやすいかと感じました。
貴重なご意見ありがとうございます。開発のしやすさ、とても大切ですよね。今後の改善の参考にさせて頂きます。
APIで返された情報をよりわかりやすく可視化された状態で確認できる機能があれば開発がしやすいかと感じました。
貴重なご意見ありがとうございます。開発のしやすさ、とても大切ですよね。今後の改善の参考にさせて頂きます。
最後に
インターン基礎編の概要を通じて、NAVITIME APIを利用する際の流れやAPIの利点についてご紹介いたしました。
私たち、ナビタイムジャパンも、皆さんに使ってフィードバックを頂くことで、よりよいサービスの提供につなげられています。
是非、業務や研究、個人でも、試しにAPIを使ってみてくださいね。
私たち、ナビタイムジャパンも、皆さんに使ってフィードバックを頂くことで、よりよいサービスの提供につなげられています。
是非、業務や研究、個人でも、試しにAPIを使ってみてくださいね。
NAVITIME API サービス概要資料
各APIの概要や利用イメージを確認いただける資料です。フォーム送信後、資料ダウンロードのリンク先をご案内いたします
この記事の執筆
NAVITIME API/SDK 記事編集部
株式会社ナビタイムジャパン ソリューション事業
お客様の開発を強力にサポートするAPI/SDKなどのサービスを展開しているソリューション事業部。 サービスのサポートチームや開発担当者が、APIを中心に、その選定方法や使い方など様々な記事をご紹介しています。