ナカの人に聞いてみた ~
AWS の位置情報サービスでリッチなマップを実装しよう !
米倉 裕基, 稲田 大陸
builders.flash 読者の皆様こんにちは。テクニカルライターの米倉 裕基と申します。
「ナカの人に聞いてみた」と題した本シリーズは、実際に AWS で働くソリューションアーキテクトの皆さんに、各種 AWS サービスの機能や利点を聞いてみようというインタビュー形式の記事になります。
初回のゲストは、エンタープライズ製造ソリューションアーキテクト として活躍されている稲田 大陸 (いなだ りく) さんです。
本記事では、AWS が提供する位置情報サービス Amazon Location Service の魅力や機能についてインタビュー形式で語っていただきます。
本シリーズのその他の記事はこちら
- 選択
- AWS の位置情報サービスでリッチなマップを実装しよう !
- Amazon Kinesis Video Streams で監視カメラシステムを構築しよう!
- Amazon CodeCatalyst で開発環境の構築とチームコラボレーションを加速しよう!
- エンタープライズ検索サービス Amazon Kendra で知りたい情報をすぐに検索 !
- クラウドコンタクトセンターを簡単セットアップ !
米倉 裕基
こんにちは、稲田さん。
この度は、「ナカの人に聞いてみた」第一回のゲストとしてインタビューをお引き受けいただきありがとうございます。
稲田 大陸
こんにちは、米倉さん。
こちらこそ第一回ゲストに呼んでいただきありがとうございます。
米倉 裕基
このシリーズでは、AWS の中で活躍するソリューションアーキテクトのみなさまに、ご自身が携わる AWS サービスの魅力や特徴について、インタビュー形式でお聞きするものです。AWS のユーザーのみなさまの中には、AWS 社員の生の声をお聞きになりたいと思われる方も多くいらっしゃると考え、このようなインタビューシリーズを企画させていただきました。それではインタビューを始める前に、簡単な自己紹介をお願いしてもよろしいでしょうか。
稲田 大陸
はい。2021 年に AWS に入社したソリューションアーキテクトの稲田 大陸です。
普段は、製造業のお客様を中心に技術支援をおこなっています。
趣味は Web アプリケーションの開発で、身の回りにあるさまざまなサービスを、AWS サービスを用いて真似て作ってみるのが好きです。
特に最近では、位置情報機能を持ったアプリケーション開発に取り組んでいます。ちなみに、フロントエンドのフレームワークは Vue.js を好んでよく使います。
米倉さん、読者のみなさん、本日はどうぞよろしくお願いいたします。
米倉 裕基
自己紹介ありがとうございます。
こちらこそよろしくお願いいたします。
身の回りのサービスを真似て自らの手で作られるとは・・・。フルスタックな開発スキルがないとなかなか真似できないご趣味ですね。
ところで、稲田さんは以前にも builders.flash に記事を寄稿されたご経験がございますよね。
AWS では、ソリューションアーキテクトとしての活動以外にも、さまざまな役割を担っていらっしゃるということでしょうか ?
稲田 大陸
はい。
ソリューションアーキテクトとしての活動の傍ら、私個人の活動として、ブログの執筆やサンプルアプリケーションの開発などもおこなっています。
以前私が寄稿した記事とは、2022 年 3 月号の「アプリを爆速で開発 ! AWS Amplify Studio で出来ること。」のことですね。多くの方が記事を読んでくれているといいなと内心期待しています (笑) 。
米倉 裕基
私も読ませていただきました。AWS re:Invent 2021 で発表された AWS Amplify Studio について要点がまとめられていて、何ができるのか、どうすれば始められるのかがとてもよく理解できました。re:Invent は英語でのセッションが多いので、あのように日本語で最新情報をまとめてもらえると、私を含め多くの日本語読者が助かると思います。
もしまだ未読の方がいらっしゃれば、この機会にぜひ読んでいただければと思います。
アプリを爆速で開発 ! AWS Amplify Studio で出来ること。
稲田 大陸
なんだか AWS Amplify Studio の宣伝みたいになってしまいましたが (笑)、今回は AWS が提供する位置情報サービス Amazon Location Service のご紹介をできたらと考えています。
Amazon Location Service とは
米倉 裕基
早速ですが、Amazon Location Service とはどういったサービスなのでしょう ?
サービス名から察するに、何か位置情報に関わる機能を提供するようなサービスとは理解できるのですが。
稲田 大陸
ええ、Amazon Location Service は、位置情報機能をアプリケーションに簡単に追加できるフルマネージドなサービスであることに間違いありません。
米倉さんもどこかにお出かけする際に、位置情報機能を持ったアプリケーションで、目的地までの移動にどのくらい時間がかかるか調べたり、宿泊する宿を探したりという経験があるのではないでしょうか。
米倉 裕基
そうですね。
私は絶望的なほどの方向音痴なので、スマホで地図アプリを見ながらでないとどこにも行けない気がします。
稲田 大陸
あはは、今はそう言う人が多いですよね。そんな便利な地図アプリですが、開発するのは大変です。
いざ位置情報機能を持ったアプリケーションを開発すると想像してみてください。まず膨大な地図データを用意しなければならないし、それらのデータを保存する場所やユーザーの位置情報を収集する仕組みも考えなければなりません。それに、個人を識別できる情報と紐付けられた位置情報は個人情報に当たるため、情報の漏洩を防ぐために十分なセキュリティを確保する必要があります。
一口に位置情報機能の実装と言っても、そのような機能を扱ったことがない開発者にとっては案外考慮すべきことがたくさんあるんですよ。
米倉 裕基
なるほど・・・。
専門知識がないと、位置情報機能を実装するのはなかなか難しいものなんですね。
稲田 大陸
そんな特に役に立つのが、Amazon Location Service です。
Amazon Location Service を使えば、高いコストをかけずに、地図などのデータや、利用者の位置情報データの収集・保存機能をアプリケーションに迅速に追加することができます。
米倉 裕基
フルマネージドサービスなので、実装時の課題をすべて AWS に任せることができるわけですね。
稲田 大陸
その通りです。
具体的には、高品質な地理空間データを使ったマップ、プレース/ジオコーディング、ルート、トラッカー、ジオフェンスなどの機能が提供されていて自由に利用できます。
加えて、データのプライバシーとセキュリティの管理機能も備えているため、安全に位置情報データの管理ができますよ。
米倉 裕基
わわわ、専門用語が多くて早くも追いつけなくなりました。
代表的な機能について、一つずつ順を追ってご説明いただけますでしょうか ?
高度なマップ機能を提供
稲田 大陸
それではまずマップ機能から順にご説明します。
マップは、位置情報を可視化する機能であり、位置情報に基づく多くのサービス機能の基盤となります。
マップにはいくつかの種類があって、Esri と HERE が提供するさまざまなスタイルのマップを用途に応じて選択できます。
米倉 裕基
不勉強で申し訳ないのですが、Esri と HERE とは、マップ情報データを提供している企業という理解でよろしいでしょうか ?
稲田 大陸
はい、その通りです。両社とも、グローバルな位置情報データプロバイダーで、非常に高度な地図データや位置情報プラットフォームを提供しています。
Esri と HERE のマップは、数十年間絶えず更新されていて、世界中の多くのアプリケーションに幅広く利用されているんですよ。ユーザーは、Esri と HERE が提供する複数のマップスタイルから、ユースケースに最も適したスタイルを自由に選ぶことができます。
ESRI および HERE のマップスタイル
(クリックすると拡大します)
米倉 裕基
なるほど。
それだけ実績のあるマップを簡単にアプリケーションに導入できる仕組みが整っているということですね。
実は、そのマップ機能について気になることがあったのでお聞きしたいのですが。
このインタビューに臨む前に少しでも予習をしておこうと、Amazon Location Service のコンソールを見ていたのですが、そちらではすべてのマップスタイルで地名などのテキストが英語で表示されていました。
Amazon Location Service のマップ機能は、日本語対応されていないということでしょうか ?
稲田 大陸
いえ、ご安心ください。
地図データのプロプロバイダーである HERE から提供されている HERE Explore マップはデフォルトで日本語に対応しています。特別な処理をしなくても、マップの多言語化が可能ですよ。
米倉 裕基
そうですか、安心しました。
日本で展開するアプリケーションの場合、マップの日本語対応は重要な要件になると思ったのでお聞きしました。
プレース / ジオコーディング機能とは
米倉 裕基
それでは続いて、プレース / ジオコーディング機能についてお聞かせいただけますでしょうか。耳馴染みのない用語なので、私のような門外漢には何ができる機能なのか想像がしづらいのですが。
稲田 大陸
厳密に言うと、プレースとジオコーディングは別の機能です。
プレースとはその名の通り位置情報を指すのですが、POI (Point of Interest) と呼ばれる地図上の特定の地点名、住所、緯度経度をアプリケーションで扱えるようにするための機能です。
一方、ジオコーディング機能は、特定の住所を緯度経度の地理的座標に変換する機能です。反対に緯度経度を住所に変換する機能は、逆ジオコーディングと呼びます。
プレース / ジオコーディング機能のイメージ
(クリックすると拡大します)
米倉 裕基
プレースは地図上の位置情報 (POI) のことで、ジオコーデイングは住所と緯度経度を相互変換する機能というわけですね。
稲田 大陸
はい。ちなみに、プレースをマップ上に表示するには、SDK でフロントエンドのモバイルアプリケーションまたはウェブアプリケーションに実装できます。
デベロッパーガイドの サンプルコード で、マップ上に検索ボックスを追加し、検索結果を表示するまでの実装手順が載っているのでぜひご覧ください。
米倉 裕基
地図サービスに検索機能は不可欠ですもんね。
実装サンプルも提供されているのであれば、悩むことなく検索機能を組み込めそうです。
ルート機能とは ?
米倉 裕基
続いて、ルート機能についてご説明をお願いできますでしょうか。
ルートと言うと、マップ上で指定した出発地点から目的地店までの道順を提供する機能かなと思ったのですが。
稲田 大陸
そうですね。ご想像のとおり、道順を提供する機能です。
ただ Amazon Location Service では道順だけではなく、出発地と目的地間の所要時間や移動距離、特定の移動制限 (トラック用モード、車両寸法、回避方法など) を条件に加えた高度なルート情報も取得できます。
Esri と HERE は最新の交通情報に基づいて正確な移動時間の予測を行うので、たとえば物流事業者であれば、配送の迅速化や燃費の削減といったビジネス目標の達成や、サステナビリティへの取り組みにもつなげられますよ。
リアルタイムな道路交通事情に基づいて最適なルートを予測
(クリックすると拡大します)
米倉 裕基
目的地までの最短距離だけでなく、その日その時間のリアルタイムな交通事情を踏まえた最適なルート情報が得られるのはすごく便利ですね ! Esri と HERE の優れた位置情報データがあるからこそ実現できる高度なルート予測というわけですね。
トラッカー機能とは ?
稲田 大陸
それでは、次にトラッカー機能について説明しますね。
トラッカーは、トラッキング対応アプリケーションを実行しているデバイスの過去と現在の位置情報を取得する機能です。
米倉 裕基
トラッキング対応アプリケーションを実行しているデバイスというのは、スマホとかタブレットとか GPS 機能を備えたモバイル機器ということですよね。
デバイスの過去と現在の位置情報を取得することで、何か良いことがあるのでしょうか ? 良いユースケースがあればお聞きしたいのですが。
稲田 大陸
一例ですけど、物流・製造などで使われるロジスティックシステムにこのトラッカー機能を実装したとしたら、倉庫内の在庫や、工場内の製造ラインを流れる製品、トラックが運ぶ貨物などの位置情報を時系列で可視化できるようになります。
人や物、乗り物など、トラッキング対象の動きを時系列で分析することで、動きが滞っている場所やその原因を特定し、最適化することができますよね。
例としてロジスティックシステムを取り上げましたが、今は多くの人がスマートフォンを持っているので、一部のビジネス向けアプリケーションだけでなく、一般利用のアプリケーションにも応用できると思います。
リアルタイムな道路交通事情に基づいて最適なルートを予測
(クリックすると拡大します)
米倉 裕基
ロジスティックシステムはもちろん、アイデア次第でさまざまな利用が考えられるということですね。
自分でもパッと思いついたところでは、たとえば商店内の消費者の行動履歴を時系列で分析して、レイアウトや商品の陳列に役立てることもできるなと思いました。
ジオフェンス機能とは ?
米倉 裕基
それでは、最後にジオフェンス機能についてご説明をお聞きしたいと思います。
正直、機能名からは何ができるものなのかまったく想像がつきませんでした (笑)。
稲田 大陸
ジオフェンスは、マップ上で仮想的な境界線で囲まれたエリアのことです。
トラッキングされたデバイスが、ジオフェンスとして設定したエリアへ出入りしたことをイベントとして検知してくれます。
ジオフェンスへの出入りを検出
(クリックすると拡大します)
米倉 裕基
なるほど。
トラッカー機能でトラッキングしている対象のデバイスが、特定のエリアへ入退場したことを知らせる機能ということなんですね。
稲田 大陸
はい。ジオフェンスへの出入りが検知されると、Amazon Location Service は自動的に ENTER または EXIT イベントを発行します。
これらのイベントを Amazon EventBridge に送信して、AWS Lambda のようなターゲットにルーティングすれば、ダウンストリームのアクションをトリガーできます。
米倉 裕基
トラッキング対象のデバイスが特定のエリアに出入りする際に、任意の処理を実行するようなアーキテクチャを構成できるということですね。
ふーむ。すごくいろいろなことができそうですが、何か一例を挙げるならどのようなユースケースが考えられますか ?
稲田 大陸
そうですねえ。たとえば、配達ドライバーが近くに来たことをレストランに通知するなんてアプリケーションはどうでしょう。
レストランを中心とした半径 100m にジオフェンスを設定しておいて、配達ドライバーがジオフェンス内に入った際に ENTER イベントを発行して、レストラン側に通知をおこなうという流れです。
こうしたイベント駆動型のセットアップしておけば、必要に応じてアプリケーションの規模や拡張性を簡単に調整することができるので便利だと思います。
米倉 裕基
なるほど。そんなアプリケーションがあれば、出来立ての料理をスムーズにドライバーにお渡しできそうですね。
ジオフェンス機能も、アイデア次第でいろいろとユニークなことができることがわかりました。
Amazon Location Service の始め方
米倉 裕基
Amazon Location Service の代表的な機能として、マップ、プレース/ジオコーディング、ルート、トラッカー、ジオフェンスについてご紹介いただいたわけですが、これから Amazon Location Service を始めたいと思われている方は何から始めれば良いのでしょう ?
何かビギナー向けの参考資料はありますでしょうか。
稲田 大陸
いきなりゼロからアプリケーションを作るのは時間がかかってしまうので、まずは GitHub レポジトリの aws-samples に登録されているサンプルアプリケーションを触ってみることから始めるのはいかがでしょうか。
こちらの GitHub リポジトリでは、iOS、Android といったモバイルアプリケーションのほか、React や Vue.js などの Web フレームワークを使った Web アプリケーションのサンプルが公開されています。
米倉 裕基
おお、それは心強いですね !
いきなりデベロッパーガイドを読みながら実装を進めるのは大変なので、まずはサンプルでいろいろ試したいですもんね。
稲田 大陸
サンプルの数が多いので悩ましいですが、最初に試していただくなら「2 つの地図を比較することが出来るサンプル」が適切ではないかなと思います。
Amazon Location Service Map Comparison
(クリックすると拡大します)
米倉 裕基
クイックスタートを拝見すると、Node.js 環境さえあれば、リポジトリのクローン、依存関係のインストール、AWS Amplify へのデプロイだけで簡単にサンプルアプリケーションを実行できるようですね。
あれ !? こちらのリポジトリのメインコントリビューターは、稲田さんのお名前になってますよ !
稲田 大陸
あはは、そうですね。自分が作ったサンプルを宣伝したいわけではありませんけど (笑) 。
Amazon Location Service を使い始めると、まずどのマップスタイルを使うか迷うと思います。このサンプルアプリはいろいろなマップスタイルを簡単に試すことができるので、初めて Amazon Location Service を使われる方にとって参考になると思いご紹介しました。
具体的な使い方について今は深く触れませんが、「Amazon Location Service のマップスタイルを選択する際のポイント」で詳しく解説していますので、そちらをご覧いただけたらと思います。ソースコードも公開されているので、自由にカスタマイズすることで Amazon Location Service の理解を深めていただけると思います。
まとめ
米倉 裕基
これで第一回「ナカの人に聞いてみた」のインタビューは終了になります。
稲田さん、本日はどうもありがとうございました。
デベロッパーガイドを読んでもサービスの機能や使い方はわかりますが、やはり現場で活躍されるソリューションアーキテクトの方から直接ご説明いただくことで、より具体的な利用イメージを持つことができました。私もサンプルアプリを試すことから Amazon Location Service を使い始めてみたいと思います。
最後に稲田さんの方から読者のみなさんにお伝えしたいことはありますでしょうか ?
稲田 大陸
米倉 裕基
こちらこそありがとうございました。
本シリーズのその他の記事はこちら
- 選択
- AWS の位置情報サービスでリッチなマップを実装しよう !
- Amazon Kinesis Video Streams で監視カメラシステムを構築しよう!
- Amazon CodeCatalyst で開発環境の構築とチームコラボレーションを加速しよう!
- エンタープライズ検索サービス Amazon Kendra で知りたい情報をすぐに検索 !
- クラウドコンタクトセンターを簡単セットアップ !
参加者プロフィール
米倉 裕基
アマゾン ウェブ サービス ジャパン合同会社
テクニカルライター・イラストレーター
日英テクニカルライター・イラストレーター・ドキュメントエンジニアとして、各種エンジニア向け技術文書の制作を行ってきました。
趣味は娘に隠れてホラーゲームをプレイすることと、暗号通貨自動取引ボットの開発です。
現在、AWS や機械学習、ブロックチェーン関連の資格取得に向け勉強中です。
稲田 大陸 (Riku Inada @inariku)
アマゾン ウェブ サービス ジャパン合同会社 ソリューションアーキテクト
2021 年 4 月に AWS Japan に入社し、筋トレが趣味なソリューションアーキテクトです。好きな AWS のサービスは AWS Amplify と Amazon CDK 。最近はビートボックスを聴くのにハマっています。
AWS を無料でお試しいただけます