http://www.geosense.co.jp/map/tool/geoconverter.php 緯度経度変換ツール 日本の東西南北端点の経度緯度 | 国土地理院 日本測地系のミリ秒を世界測地系の度に変換する計算 - Qiita 緯度経度 -単位変換-
ミリ秒から度への変換
元データを3,600,000で割る
128544000 → 35.70666667
503329984 → 139.8138844
世界測地変換
lat = jp_lat - jp_lat * 0.00010695 + jp_lon * 0.000017464 + 0.0046017;
lon = jp_lon - jp_lat * 0.000046038 - jp_lon * 0.000083043 + 0.010040;
DMS形式
・度/分/秒.秒表記(度/分/ミリ秒表記) 秒の表現は10進 35/39/15.152(35/39/15152) 139/45/27.932(139/45/27932)
・ミリ秒換算 128355152 503127932 ミリ秒単位→度単位 3600000で割る
DEG形式(Degree) dddd.ddddd
・度.度(10進)、緯度経度を単位”度”のみで表現 136.6694786
DEGとDMSの変換 136.6694786を136°40′10.123に変換
136と0.6694786に分ける 0.6694786に60を掛ける 40.168716 → 40分 0.168716に60を掛ける 10.12296 → 10.12296秒
(度 * 3600 + 分 * 60 + 秒) * 1000 = 分
phpだと・・・こんな感じ? i] = (int)i] * 3600 + (int)( (i] – (int)i]) * 60 ) *60 + ( (int)( (i] – (int)i]) * 60 ) – ( (i] – (int)i]) * 60 ) ) * 60; i] = (int)i] * 3600 + (int)( (i] – (int)i]) * 60 ) *60 + ( (int)( (i] – (int)i]) * 60 ) – ( (i] – (int)i]) * 60 ) ) * 60;
さらにミリ秒に変換する 136°40′10.123 136+40/60+10/(6060)+123/(6060*60)
DMSからDEGへの変換 136°40′10.123を136.6694786に変換 lng[0] + ( lng[2] / 60 ) ) / 60
lat[0] + ( lat[2] / 60 ) ) / 60
測地系変換 これは簡易計算で、誤差が発生します。 <日本測地系⇒世界測地系> 世界測地系緯度 = 日本測地系緯度 – 0.00010695 * 日本測地系緯度 + 0.000017464 * 日本測地系経度 + 0.0046017 世界測地系経度 = 日本測地系経度 – 0.000046038 * 日本測地系緯度 – 0.000083043 * 日本測地系経度 + 0.010040 <世界測地系⇒日本測地系> 日本測地系緯度 = 世界測地系緯度 + 0.00010696 * 世界測地系緯度 – 0.000017467 * 世界測地系経度 – 0.0046020 日本測地系経度 = 世界測地系経度 + 0.000046047 * 世界測地系緯度 + 0.000083049 * 世界測地系経度 – 0.010041
日本測地系(Tokyo Datum)、単位は秒、ミリ秒は小数点以下2桁以内で指定すること。