サイトでは累計歩行距離と重複除く距離を併記しています。累計歩行距離はGarminウォッチの把握そのままですが、同じ道を歩いた場合の重複距離をそこから除いて、「山手線内の道は全部で何キロ?」という素朴な疑問に最後に答えられるようにしています。

重複距離は、pythonのプログラムがオープンソースウェアのValhallaを利用して計算しています。ValhallaがGarminのGPS軌跡をOpenStreetMapの道路に対応付け、Pythonのプログラムが新規・重複を判定して集計します。Dockerというコンテナ技術も使っていますが、それも含めてChatGPTがよしなに作ってくれました。すごいなあ。

同じ道を反対方向に歩いても重複と判断してくれますが、例えば一本の広い車道の両側に歩道がOpenStreetMapで登録している場合、それぞれの歩道は別の道と判定されます。また、過去に歩いた町との境界を歩く場合もあり、過去のデータまで参照して重複判定するのは処理の負担が大きくなります。そうした区間では、Garminウォッチのラップボタンを押し、奇数ラップは重複区間と把握する仕組みも備えています。よく、新規区間に戻ってもラップボタンを押し忘れることがあるので、200mを超える重複区間が把握されたときは、手動で確認できるようにもしています。

そんな感じなので、重複を除く距離はあくまで参考程度に考えてください。