Slide 1

Slide 1 text

Azure Mapsで GPSデータの補完をしよう 2025/01/25 .NETラボ 2025年1⽉ 当⽇LT NTTテクノクロス 中島進也(なかしょ)

Slide 2

Slide 2 text

⾃⼰紹介 • なかしょ(中島進也) @nakasho_dev • 所属:NTTテクノクロス株式会社 デジタルトランスフォーメーション事業部 • 業務:MaaS関連のスマートフォンアプリ開発担当 • 趣味: Ø妻とモンハンデート ØIT関連の勉強会(主にモバイル系 or アジャイル系) Ø技術コミュニティの運営スタッフ üeXtreme Programming Japan User Group(XPJUG) 2019〜 üTDD BootCamp Online (TDDBC) 2020〜 ※本資料は私個⼈の意⾒であり、所属企業・部⾨⾒解を代表するものではありません。

Slide 3

Slide 3 text

Azure Update about Azure Maps in 2024 3 発表⽇ 発表内容 03/22/ 2024 Azure Maps Native SDK for Android and iOS will be retired on 31 March 2025 ‒ transition to use Azure Maps Web SDK in a web view 03/22/ 2024 Important Notice: Azure Product Retirement: End of Life Announcement of Azure Maps Creator Feature State Service Versions 31 March 2025 03/29/ 2024 Azure Maps Web SDK Map Control version 2.0.x and Azure Maps Service Module will be retired on 30 September 2026 09/19/ 2024 Retirement: Azure Maps Data Registry APIs V 2023-06-01 will be retired on September 30th, 2025. 09/19/ 2024 Retirement: Azure Maps Creator Service APIs V2 & 2023-03-01-preview will be retired on September 30, 2025 09/26/ 2024 Retirement: Azure Maps Spatial APIs V1 & 2022-08-01 will be retired on September 30th, 2025.

Slide 4

Slide 4 text

Snap to Roads 4 • ⽣のGPSデータを正確な道路 座標に変換 • ⽋落したデータを補完してス ムーズで正確な経路を作成 ØGPSデータが弱い信号や環境障 害の影響を受けても追跡可能 • 速度制限や道路名を取得でき る • さまざまな利点 Øドライバーの法令順守の監視 Ø配送ルートの最適化 Ø顧客体験の向上 https://techcommunity.microsoft.com/blog/azuremapsblog/snap-to-roads-is-now-available-for-azure-maps/4351790

Slide 5

Slide 5 text

5 GPSの⽣データ

Slide 6

Slide 6 text

6 線でつなげると

Slide 7

Slide 7 text

GPSトラッキングの座標 7 47.44051971524476, -122.29624588793097 47.452339232766306, -122.30016191280002 47.46313337730597, -122.29200799772718 47.46519329825303, -122.27939088661363 47.46275620001321, -122.26917703537292 47.46281422742038, -122.2602506431383 47.463481538743245, -122.24643190233981 47.46696302509646, -122.23411519864172 47.467688305759125, -122.21965272777507 47.46829753378787, -122.21072633599138 47.47502758257366, -122.20368822001038 47.482481846156254, -122.19802339423852 47.48918107935549, -122.19287355299349 47.49561849839651, -122.19338853697981 47.502113112455795, -122.19639261079317 47.509650496332135, -122.19806630920402 47.51646220055227, -122.19828088590789 47.525417521336436, -122.19780881722822 47.5328066833555, -122.19665010293956 47.54117980843125, -122.19506223522299 47.54369474439065, -122.19542701570174 47.54786612128628, -122.19542701570174 47.5549624927415, -122.19147880429776 47.562231656593084, -122.18692977780272 47.56813891931155, -122.17946250819722 47.575203593971544, -122.17547138129002 47.58293310889389, -122.17572887333812 47.58449624307189, -122.17727382616138 47.589590578007034, -122.18006332339522 47.59746266580935, -122.1798487467203 47.60539143935743, -122.1857710641645 47.61305863566639, -122.18856056145614 47.62240241538219, -122.18860347669049 47.62902594116249, -122.18800266180757 47.631021511415774, -122.17654426566777 47.630124960293806, -122.16366966326349 47.62995143254167, -122.15238292670554 47.63535944479542, -122.13980873169068 47.63989942945928, -122.13611801185785 47.64241504719857, -122.13693340334346

Slide 8

Slide 8 text

GitHub Copilotにお願いしてみる 8 47.44051971524476, -122.29624588793097 47.452339232766306, -122.30016191280002 47.46313337730597, -122.29200799772718 47.46519329825303, -122.27939088661363 47.46275620001321, -122.26917703537292 47.46281422742038, -122.2602506431383 47.463481538743245, -122.24643190233981 47.46696302509646, -122.23411519864172 47.467688305759125, -122.21965272777507 47.46829753378787, -122.21072633599138 47.47502758257366, -122.20368822001038 47.482481846156254, -122.19802339423852 47.48918107935549, -122.19287355299349 47.49561849839651, -122.19338853697981 47.502113112455795, -122.19639261079317 47.509650496332135, -122.19806630920402 47.51646220055227, -122.19828088590789 47.525417521336436, -122.19780881722822 47.5328066833555, -122.19665010293956 47.54117980843125, -122.19506223522299 47.54369474439065, -122.19542701570174 47.54786612128628, -122.19542701570174 47.5549624927415, -122.19147880429776 47.562231656593084, -122.18692977780272 47.56813891931155, -122.17946250819722 47.575203593971544, -122.17547138129002 47.58293310889389, -122.17572887333812 47.58449624307189, -122.17727382616138 47.589590578007034, -122.18006332339522 47.59746266580935, -122.1798487467203 47.60539143935743, -122.1857710641645 47.61305863566639, -122.18856056145614 47.62240241538219, -122.18860347669049 47.62902594116249, -122.18800266180757 47.631021511415774, -122.17654426566777 47.630124960293806, -122.16366966326349 47.62995143254167, -122.15238292670554 47.63535944479542, -122.13980873169068 47.63989942945928, -122.13611801185785 47.64241504719857, -122.13693340334346 以下の緯度経度を使⽤したRFC7946に対応したGeoJSONを作成ください。 各緯度経度はFeatureのPointとして作成ください。 各Featureは以下のようにPropertiesを⼊れて作成ください。 { "type": "Feature", "geometry": { "coordinates": [ -122.296300, 47.440541 ], "type": "Point" }, "properties": {} }

Slide 9

Slide 9 text

⽣成されたGeoJSON 9 { "type": "FeatureCollection", "features": [ { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122.29624588793097 , 47.44051971524476] }, "properties": {} }, 〜〜 〜〜 〜〜 〜〜 〜〜 〜〜 〜〜 〜 { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122.13693340334346 , 47.64241504719857] }, "properties": {} } ] }

Slide 10

Slide 10 text

Snap To Roads APIにリクエスト 10 POST https://atlas.microsoft.com/route/snapToRoads?api-version=2024-07-01- preview&subscription-key={{subscription_key}} HTTP/1.1 content-type: application/json Accept: application/json { <<⽣成したJSON>> “interpolate”: true, //GPSデータを補完するか否か “includeSpeedLimit”: true, //速度制限を取得するか否か “travelMode”: “driving” //運転か歩⾏か }

Slide 11

Slide 11 text

Snap To Roads API からのレスポンス 11 { "type": "Feature", "geometry": { "type": "Point", "coordinates": [-122.29663, 47.441184] }, "properties": { “name”: “Airport Expy”, //道路名 “speedLimitInKilometersPerHour”: 32, //制限速度 “isInterpolated”: true //補完されたPointデータか否か } },

Slide 12

Slide 12 text

12 SnapToRoadsによる補完

Slide 13

Slide 13 text

⽇本の道路だと... 13 • Snap To RoadsはRoutingサービスに含まれる • ⽇本はRoutingサービスが提供対象外

Slide 14

Slide 14 text

まとめ 14 • Azure MapsはRetirementの機能が続出しているけど、新機能 も実装されている。 Ø(だからきっと、まだまだサービス終了しない、よね?) • ⽣成AIでGeoJSON作るのは便利 • ⽣のGPSデータをSnap To Roadsから経路を取得してビジネス に活⽤しよう。 Ø(まだ、⽇本の道路は対象外。「まだ」だよね?)

Slide 15

Slide 15 text

ご清聴ありがとうございました。 15