Mapbox Map Matching API は、GPSの誤差などで道からずれている移動データを道なりにしてくれるAPIです。
https://www.mapbox.com/help/define-map-matching/
調査で使ってみます。
結論から言うと、あまりいいデータになりませんでした。
量が少ないのかな??
とはいえ、やってみたことをメモとして記録しておきます。
まずは、下記のように横浜駅から弊社への歩きのデータを普通にMap上にポリラインで描画すると、次のようになります。
これを下記のAPIドキュメントを参考にしながらMap MatchingのAPIから結果を取得してみます。
https://www.mapbox.com/api-documentation/#map-matching
結果を取得するURLは次のようになります。
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" }
描画してみると、次のようになります。
あれれ、ただ単にデータが減っただけみたいですね。
もともとは38個あった緯度経度データが、14個に減っています。
なぜなぜ~。
日本はまだまだデータが少ないからなのか、そもそものデータが少ないのか。
謎ぽよです。
ちょっとわかりませんね。