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
Exploring New Google Places API
Search
KintoTech_Dev
December 05, 2024
0
170
Exploring New Google Places API
Mobility Night #1 - GPS・位置情報 -
https://mobility-night.connpass.com/event/334400/
KintoTech_Dev
December 05, 2024
Tweet
Share
More Decks by KintoTech_Dev
See All by KintoTech_Dev
効率的なアプリ自動化のためのガイドラインと実践方法
kintotechdev
0
3
Amazon BedrockでAgentic RAGを構築し、Slack連携して学習曲線を〇〇にした件
kintotechdev
1
54
Copilotの力を実感!3ヶ月間の生成AI研修の試行錯誤&成功事例をご紹介。果たして得たものとは・・?
kintotechdev
0
37
エンジニア視点で挑む品質改革 - QA活動の重要なポイント3つ
kintotechdev
0
67
Findy Team+ Award 2024 プロジェクトビジョン発表会 ー KINTOテクノロジーズ株式会社
kintotechdev
0
78
クルマのサブスクを Next.jsで内製化した経験とその1年後
kintotechdev
2
970
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Being A Developer After 40
akosma
89
590k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Done Done
chrislema
182
16k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Agile that works and the tools we love
rasmusluckow
328
21k
Transcript
Exploring New Google Places API KINTOテクノロジーズ ⼤沼 2024/12
©KINTO Corporation. All rights reserved. 2 ⾃⼰紹介 @numaMyk 2010年〜Androidエンジニア 2024年5⽉にKINTOテクノロジーズに⼊社しモビリティサービス
my route の Androidアプリ開発に従事。 BLEタグと屋内の位置情報検知機能で⼈やモノの位置管理システムのプロジェクトを経験。 バイクや登⼭で絶景ハントするのが趣味
©KINTO Corporation. All rights reserved. 3 Index ⽬次 1 はじめに
2 3 4 5 料⾦体系の変更 6 まとめ 新しいオートコンプリート 新しいPlace Typesの追加 Google Places APIとは 7 会社紹介
©KINTO Corporation. All rights reserved. 4 はじめに 今回の発表は、Google Map PlatformのPlaces
APIのアップデート情報を調べてみたことをお話しします。 今年の初めにGoogle I/O 2024にてPlaces APIが新しくなったことが公表され、キャッチアップしたいと 考えました。 この発表で話す内容の調査は以下のライブラリを使⽤したandroidアプリで確認しています。 • Places SDK for Android v4.1.0
©KINTO Corporation. All rights reserved. 5 Google Places APIとは Google
Places APIは、Googleの位置情報データベースを活⽤して、特定の場所や周辺エリアの情報を 取得できるAPIです。 • 場所検索: 現在地や特定の条件に基づいて、レストラン、ホテル、観光地などを検索。 • 詳細情報の取得: 営業時間、電話番号、評価、レビューなどの詳細な場所情報を取得。 • オートコンプリート機能: ユーザーが⼊⼒したキーワードに基づいて、候補をリアルタイムで提案。 モビリティサービスにおける ユーザー体験を向上させるために もってこいのツールですね
©KINTO Corporation. All rights reserved. 6 新しいオートコンプリート 3
©KINTO Corporation. All rights reserved. 7 新しいオートコンプリートの特徴:地域に基づいた精度の向上 より最適な場所の候補を表⽰。 指定した位置情報や地域に基づいてより 関連性の⾼い検索結果が得られやすくなりました
例)ユーザーが「カフェ」と⼊⼒した場合、 現在地周辺のカフェを優先して表⽰。
©KINTO Corporation. All rights reserved. 8 新しいオートコンプリートの特徴:多⾔語対応の強化 Place Autocomplete の
languageCode パラメータを使⽤することで⼊⼒する⾔ 語に依存せず検索結果を出すことができます。 IETF BCP-47 ⾔語コード(例: en、ja など)を渡します。
©KINTO Corporation. All rights reserved. 9 PlacesClient.awaitFindAutocompletePredictions() パラメータ⼀覧 パラメータ名 origin
結果を⽣成する際の起点(ユーザーの位置など)を指定します。 query ユーザーが検索しているクエリ⽂字列 例: "Sushi" や "Tokyo Station" countries 結果を特定の国に制限するためのISO 3166-1 Alpha-2コード(例: "JP") ⼀度に複数の国を指定することも可能 locationBias バイアス(優先)位置 特定の地点や地域に基づく結果を優先し、特定の地域外の候補も出す locationRestriction 制限する領域 特定の地域外の候補を除外 typeFilter オートコンプリート結果を特定のプレイスタイプに制限 例: TypeFilter.ESTABLISHMENT, TypeFilter.ADDRESS sessionToken セッションごとの⼀意なトークン。オートコンプリートセッション全体で⼀意のトークンを 使⽤することで、料⾦の効率化と操作のトラッキングが可能。
©KINTO Corporation. All rights reserved. 10 val origin = LatLng(35.6868974,139.7722662)
placesClient.awaitFindAutocompletePredictions { this.origin = origin locationRestriction = CircularBounds.newInstance(origin, 200.0) typesFilter = listOf(PlaceTypes.ESTABLISHMENT) this.query = query countries = listOf("JP") sessionToken = token } コードサンプル
©KINTO Corporation. All rights reserved. 11 4 新しいPlace Typesの追加
©KINTO Corporation. All rights reserved. 12 新しいPlace Typesの追加 次世代オートコンプリートでは、従来のPlace Typesに加え、
さらに多くの場所タイプがサポートされており、より多様な検索が可能に。 例: ただの「カフェ」だけではなく「ドッグカフェ(dog_cafe) 」タイプが加わり⽝の同伴が可能なカ フェというのがわかったり ただの「美術館」だけではなく「⾞椅⼦の⼊り⼝がある美術館(wheelchair_accessible_entrance)」タイ プが加わりバリアフリー対応なのか など、特定の施設をより精度⾼く検索できるようになりました。
©KINTO Corporation. All rights reserved. 13 • 課題例: ユーザーが外出先で適切な飲⾷店をすばやく⾒つけたい。 APIの活⽤:
• Autocomplete: キーワードを⼊⼒すると、近くの候補をすばやく提⽰。 • Place Details: 各店舗の営業時間、レビュー、混雑状況を表⽰。 • Place Types: 「ヴィーガンレストラン」「ハラールレストラン」など 特定条件の絞り込み。 Place Types を駆使することでどのように課題を解決できるか
©KINTO Corporation. All rights reserved. 14 • 課題例: ユーザーが外出先で適切な飲⾷店をすばやく⾒つけたい。 デザイン視点のポイント
• ⼊⼒補助や候補リストを直感的に⾒やすく設計する。 Place Types を駆使することでどのように課題を解決できるか
©KINTO Corporation. All rights reserved. 15 料⾦体系の変更 5
©KINTO Corporation. All rights reserved. 16 料⾦体系の変更 API利⽤ごとの個別課⾦から、セッション単位の料⾦モデルへ刷新されました。 • セッション
= ユーザーの連続的なAPI呼び出しの期間。 • 最⼤ 15 分間継続可能。 旧料⾦モデルの例 • ユーザーが10回リクエスト -> 10回分課⾦。 新料⾦モデルの例 • 同じ10回リクエストでも1セッション内で完結 -> 1セッション分課⾦。
©KINTO Corporation. All rights reserved. 17 料⾦⽐較 以前: 現在 リクエストごとの課⾦
セッションごとに $17.00/1,000セッション 以前 現在 それぞれ別々に課⾦ セッション単位で $23.00/1,000セッション Places API (Autocomplete): Autocomplete + Place Details:
©KINTO Corporation. All rights reserved. 18 placesClient.awaitFindAutocompletePredictions { this.query =
query sessionToken = token } } どのようにコストを削減できるか (従来の例: 必要以上のデータ取得) 問題点: 上記のコードでは、全てのフィールドをデフォルトで リクエストしているため、不要なデータ取得によるコストが発⽣。
©KINTO Corporation. All rights reserved. 19 val placeFields = listOf(Place.Field.ID,
Place.Field.DISPLAY_NAME, Place.Field.RATING) placesClient.awaitFetchPlace( placeId = placeId, placeFields = placeFields sessionToken = token ) どのようにコストを削減できるか (改善例: 必要なデータフィールドだけを指定) コスト削減のポイント:必要最低限の情報(例: 店名、レビュー 評価)だけを取得。
• 新しいオートコンプリートは、ユーザーの検索体験を より便利でスムーズにアプリケーションの利便性をUP • 必要なPlace.Fieldを必ず指定しリクエストすることで、 コスト効率が向上 まとめ
©KINTO Corporation. All rights reserved. 21 KINTOテクノロジーズ株式会社のご紹介 1
©KINTO Corporation. All rights reserved. 22 KINTOテクノロジーズ公式X
Thank you!