Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AzureMapsでGPSデータを補完しよう

 AzureMapsでGPSデータを補完しよう

2025/1/25(土)に開催された .NETラボ 勉強会 2025年1月( https://dotnetlab.connpass.com/event/341044/ ) に参加した時に当日受付LTで発表した資料です。 #dotnetlab

なかしょ

January 25, 2025
Tweet

More Decks by なかしょ

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 • なかしょ(中島進也) @nakasho_dev • 所属:NTTテクノクロス株式会社 デジタルトランスフォーメーション事業部 • 業務:MaaS関連のスマートフォンアプリ開発担当 •

    趣味: Ø妻とモンハンデート ØIT関連の勉強会(主にモバイル系 or アジャイル系) Ø技術コミュニティの運営スタッフ üeXtreme Programming Japan User Group(XPJUG) 2019〜 üTDD BootCamp Online (TDDBC) 2020〜 ※本資料は私個⼈の意⾒であり、所属企業・部⾨⾒解を代表するものではありません。
  2. 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.
  3. Snap to Roads 4 • ⽣のGPSデータを正確な道路 座標に変換 • ⽋落したデータを補完してス ムーズで正確な経路を作成

    ØGPSデータが弱い信号や環境障 害の影響を受けても追跡可能 • 速度制限や道路名を取得でき る • さまざまな利点 Øドライバーの法令順守の監視 Ø配送ルートの最適化 Ø顧客体験の向上 https://techcommunity.microsoft.com/blog/azuremapsblog/snap-to-roads-is-now-available-for-azure-maps/4351790
  4. 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
  5. 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": {} }
  6. ⽣成された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": {} } ] }
  7. 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” //運転か歩⾏か }
  8. Snap To Roads API からのレスポンス 11 { "type": "Feature", "geometry":

    { "type": "Point", "coordinates": [-122.29663, 47.441184] }, "properties": { “name”: “Airport Expy”, //道路名 “speedLimitInKilometersPerHour”: 32, //制限速度 “isInterpolated”: true //補完されたPointデータか否か } },
  9. まとめ 14 • Azure MapsはRetirementの機能が続出しているけど、新機能 も実装されている。 Ø(だからきっと、まだまだサービス終了しない、よね?) • ⽣成AIでGeoJSON作るのは便利 •

    ⽣のGPSデータをSnap To Roadsから経路を取得してビジネス に活⽤しよう。 Ø(まだ、⽇本の道路は対象外。「まだ」だよね?)