GPSの記録で線を引く
2019.06.21 03:30
移動の記録をマップ上に表示しようとすると、まず、移動の記録を取るところから、ということになります。移動の記録については、スマートフォンにGPS機能があることで、手軽にとれるようになりました。例えば、KML形式で取得すると、
- <when>2019-06-02T07:47:22.669Z</when>
- <gx:coord>145.5978991 43.3309429 73.79999542236328</gx:coord>
- <when>2019-06-02T07:47:29.000Z</when>
- <gx:coord>145.5975803 43.33057485 68.89349365234375</gx:coord>
- <when>2019-06-02T07:47:33.315Z</when>
- <gx:coord>145.59787 43.3306522 73.79999542236328</gx:coord>
のようなデータになります(ヘッダ部分やフッタ部分にはもっと別のデータがある)。<gx:coord>の経度、緯度、標高情報を使えば、どこにいるか分かるというわけです。
これを、利用して、地図上に線を引いてみます。前回の地図表示のJavascriptに緯度、経度の配列をpushし、polylineに指定します。
- var coordinate = new Array();
- coordinate.push([43.41030385, 142.42685039]);
- coordinate.push([43.41117994, 142.42760581]);
- coordinate.push([43.41188111, 142.4282986]);
- coordinate.push([43.41226711, 142.42921284]);
- coordinate.push([43.41237535, 142.43037959]);
- coordinate.push([43.41236866, 142.43165465]);
- coordinate.push([43.41262282, 142.43287926]);
- coordinate.push([43.41329179, 142.43379154]);
- coordinate.push([43.4141121, 142.43452936]);
- L.polyline(coordinate, { color: 'blue', weight: 3 }).addTo(map);
これを表示すると、
GPSロガーで記録する間隔次第ですが、結構、正確に表現ができます。間隔が空けば、曲がっている道を真っ直ぐ進んだように見えるようになります。