制作記事 Web制作マークアップphp日本測地系←→世界測地系 変換

日本測地系←→世界測地系 変換

「日本測地 世界測地 変換」でググってみると、変換する計算式はいろいろあることが分かったが、Google Mapsで使われている(た?)というコードをベースに備忘録(PHP用)。

日本測地系(度)から世界測地系(度)に変換する

/**
* 日本測地系(度)から世界測地系(度)に変換する
* 第一引数: 日本測地系の緯度(度)、第二引数: 日本測地系の経度(度)
* 返却:  世界測地系の緯度経度をオブジェクトで返却する
*/
function get_world_latlng($lat = 0, $lng = 0) {
$world_lat = $lat - $lat * 0.00010695 + $lng * 0.000017464 + 0.0046017;
$world_lng = $lng - $lat * 0.000046038 - $lng * 0.000083043 + 0.010040;
return array(
"lat" => $world_lat,
"lng" => $world_lng
);
};

世界測地系(度)から日本測地系(度)に変換する

/**
* 世界測地系(度)から日本測地系(度)に変換する
* 第一引数: 世界測地系の緯度(度)、第二引数: 世界測地系の経度(度)
* 返却:  日本測地系の緯度経度をオブジェクトで返却する
*/
function get_japan_latlng($lat = 0, $lng = 0) {
$japan_lat = $lat * 1.000106961 - $lng * 0.000017467 - 0.004602017;
$japan_lng = $lng * 1.000083049 + $lat * 0.000046047 - 0.010041046;
return array(
"lat" => $japan_lat,
"lng" => $japan_lng
);
};