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桁以内で指定すること。