更新日: 2018-01-10 (水) 12:58:34 (12d)

:Javascript

Mapbox Map Matching API は、GPSの誤差などで道からずれている移動データを道なりにしてくれるAPIです。

https://www.mapbox.com/help/define-map-matching/

調査で使ってみます。
結論から言うと、あまりいいデータになりませんでした。
量が少ないのかな??

とはいえ、やってみたことをメモとして記録しておきます。

まずは、下記のように横浜駅から弊社への歩きのデータを普通にMap上にポリラインで描画すると、次のようになります。

map_matching_before.png

これを下記のAPIドキュメントを参考にしながらMap MatchingのAPIから結果を取得してみます。
https://www.mapbox.com/api-documentation/#map-matching

結果を取得するURLは次のようになります。

https://api.mapbox.com/matching/v5/mapbox/walking/139.620905,35.4675961;139.6215341,35.4664734;139.6213571,35.4673672;139.6213627,35.4673691;139.6213261,35.4673446;139.6213702,35.4673721;139.6213532,35.4673546;139.6217172,35.4666922;139.6217172,35.4666922;139.6215815,35.4666787;139.6210947,35.4666536;139.6209621,35.4668035;139.6216843,35.4666219;139.6209323,35.4665434;139.6213187,35.4660293;139.6209681,35.4668535.json?access_token=ひみつ

Access Tokenは別途Mapboxで登録して取得してください。

{
 "matchings": [
   {
     "confidence": 2.7299273952507974e-12,
     "geometry": "mgnwEavdsYbAH@MVAEcB\\s@R?fA`AgAaAS?]r@YOIPBRBFCICQHQXN\\s@R?\\Z??JHfA`A@V_@v@g@i@GGuAqA\\s@R?h@d@fA`A@V_@v@MOLNATTLFNr@lCPIy@cD|@uBEE{AqAsAzC",
     "legs": [
       {
         "summary": "",
         "weight": 139.2,
         "duration": 139.2,
         "steps": [],
         "distance": 193.4
       },
       {
         "summary": "",
         "weight": 84,
         "duration": 84,
         "steps": [],
         "distance": 116.6
       },
       {
         "summary": "",
         "weight": 6.7,
         "duration": 6.7,
         "steps": [],
         "distance": 9.4
       },
       {
         "summary": "",
         "weight": 2.9,
         "duration": 2.9,
         "steps": [],
         "distance": 4
       },
       {
         "summary": "",
         "weight": 3.4,
         "duration": 3.4,
         "steps": [],
         "distance": 4.8
       },
       {
         "summary": "",
         "weight": 6.2,
         "duration": 6.2,
         "steps": [],
         "distance": 8.6
       },
       {
         "summary": "",
         "weight": 62.8,
         "duration": 62.8,
         "steps": [],
         "distance": 87.2
       },
       {
         "summary": "",
         "weight": 0,
         "duration": 0,
         "steps": [],
         "distance": 0
       },
       {
         "summary": "",
         "weight": 6.1,
         "duration": 6.1,
         "steps": [],
         "distance": 8.5
       },
       {
         "summary": "",
         "weight": 88.9,
         "duration": 88.9,
         "steps": [],
         "distance": 120.7
       },
       {
         "summary": "",
         "weight": 4,
         "duration": 4,
         "steps": [],
         "distance": 5.5
       },
       {
         "summary": "",
         "weight": 92.5,
         "duration": 92.5,
         "steps": [],
         "distance": 128.3
       },
       {
         "summary": "",
         "weight": 75.6,
         "duration": 75.6,
         "steps": [],
         "distance": 102.4
       },
       {
         "summary": "",
         "weight": 200.3,
         "duration": 200.3,
         "steps": [],
         "distance": 275.4
       },
       {
         "summary": "",
         "weight": 106.3,
         "duration": 106.3,
         "steps": [],
         "distance": 147.6
       }
     ],
     "weight_name": "duration",
     "weight": 878.9000000000001,
     "duration": 878.9000000000001,
     "distance": 1212.3999999999999
   }
 ],
 "tracepoints": [
   {
     "alternatives_count": 0,
     "waypoint_index": 0,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.620974,
       35.467588
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 1,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621427,
       35.466538
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 2,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621488,
       35.467334
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 3,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621391,
       35.467305
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 4,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621349,
       35.467293
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 5,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621399,
       35.467308
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 6,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621488,
       35.467334
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 7,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621621,
       35.46675
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 8,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621621,
       35.46675
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 9,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621565,
       35.466689
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 10,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621048,
       35.466684
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 11,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621086,
       35.466723
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 12,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621568,
       35.466693
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 13,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.620918,
       35.466552
     ]
   },
   {
     "alternatives_count": 0,
     "waypoint_index": 14,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.621361,
       35.466003
     ]
   },
   {
     "alternatives_count": 1,
     "waypoint_index": 15,
     "matchings_index": 0,
     "name": "",
     "location": [
       139.620989,
       35.466881
     ]
   }
 ],
 "code": "Ok"
}

描画してみると、次のようになります。

map_matching_after.png

あれれ、ただ単にデータが減っただけみたいですね。
もともとは38個あった緯度経度データが、14個に減っています。

なぜなぜ~。
日本はまだまだデータが少ないからなのか、そもそものデータが少ないのか。
謎ぽよです。

ちょっとわかりませんね。


選択肢 投票
役に立った 0  
役に立たなかった 0  
どちらでもない 0  
このページが参照された数
Total: 175, 今日: 1, 昨日: 0

添付ファイル: filemap_matching_after.png 9件 [詳細] filemap_matching_before.png 8件 [詳細]

でじうぃきは神奈川県横浜市の位置情報システム・スマホアプリ開発の株式会社オンラインコンサルタントが運営しています。
投稿
トップ   このページを編集する 再編集不可にする 差分 バックアップ 添付 複製 名前変更 リロード   新しいページを作る 一覧 検索する 最新の更新   ヘルプ   最終更新のRSS
Last-modified: 2018-01-10 (水) 12:58:34 (12d)