アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【C/C++
緯度経度の度単位10進数表現とミリ秒表現の相互変換
POSTED BY
2023-06-28

緯度経度は以下のように整数2or3ケタ+小数点以下6ケタの表現が一般的である。

35.658730 139.683066

しかし整数計算と管理のし易さから、小数の無い9ケタミリ秒表現も良く使われる。

128371428 502859037

これらの相互変換、まず小数点表現からミリ秒表現に変換するには3600000を乗ずれば良い。

double lon_a = (double)139.683066;
int lon_b = (int)(lon_a * 3600000.0);

逆に、ミリ秒表現から小数点表現にするには3600000で割れば良い。

int lon_b = 502859037;
double lon_a = ((double)lon_b) / 3600000.0;

変換の際は、変数のバイト幅オーバーフロー/丸め処理に注意し、先にカッコでキャスト囲いしておく。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】