メルカトル図法での再現方法
本稿はSimutrans Advent Calender 2018の17日目の記事ですね.詳細についてはこちらを参照してください.
概要
Simutransで再現プレイする際に,正確に位置を把握することが重要な課題にります.本記事では,大きさが九州までを対象とするメルカトル図法での再現方法について論じます.そして,軽く注釈をお話します.
目次
・Q&A
まずシムトラ学会で発表した動画を貼り付けておきます.
シムトラ学会4 2018年京都 07 あのKTOK氏発表「メルカトル図法での再現方法」
いや~,すんげぇカミカミですねOrz...
次に発表資料である参考資料pdfを張っておきます.
ここのコーナーでは実際に出そうな疑問をある程度解説するコーナーです.
なぜ正確に把握する必要があるの?
まず再現プレイするためには,正確な場所を把握しておく必要があります.でないと,完成の精度が下がる恐れがあるからです.また,でこぼこが激しい場所だと,正確に把握していないがために,道を引く際に誤って引いてしまったりするのを防ぐためです.
1マスあたりの大きさを決めておくと,あとは各点での距離を計算すればいいのでは?
近くだと有用ですが,遠くだとダメです.なぜかといいますと,地球は球体なので,緯度によって,経度が1進んだときの移動距離が違います.この影響が出てきます.
加えて,メルカトル図法の性質から,1マス50mの作ったと作ったとしても,実際は1マス48mだったりずれてます.
なぜ,メルカトル図法からSimutransのマップへの変換,対応が1次関数みたいなもので書けると仮定しているの?
これを説明するのは非常に難しいです.これはメルカトル図法の縦軸,横軸のスケールについて考察する必要があり,実際はそう単純な関数ではないです.そこで,Taylor展開と呼ばれる手法をお使うと,関数を1次関数で近似できるので使いました.
精度はどれくらいなの?
九州マップで1マスあたり50mくらいのマップで,6500*5500くらいのマップで実行してみました.すると誤差は2マス程度でした.3マスを超えることは滅多にないです.
それでも誤差は出るんですね.
1次関数で近似で近似したので,その分の誤差は必ず出ますね.
他にも,地球が完全な球体ではないので,その分の誤差も出ます.影響は低いですが.
定義に戻って厳密に計算した方が精度いいのでは?
そのとおりです.しかし,今回,この方法を挙げた理由は,計算で使う知識が中学生なので,誰でもラクにExcelとかでマクロを組むことができる点で,この方法は優れています.
なるべく特定できる遠い2点をとれば良いといっているが,遠すぎると誤差の影響がおおきなるのでは?
そのとおりです.なので,実際は1000マスくらい距離で特定できる2点を計算する方がいいかもしれませんね.
まとめ
メルカトル図法で再現する際に,精度がそこそこいい方法を挙げました.この方法がSimutransの役にたったなら嬉しい限りです.
おマけ
欲しいアドオンを挙げると,128版のななつぼし,ですかね.
欲しい機能をあげると,土地の上げ下げを,レールとかでCtrlと組み合わせるときれいな直線が引ける,適な機能があると,堀プレイとか,盛り土プレイとかがが捗る気がしますね...