位置情報の世界測地から日本測地への変換の覚書

php

じゃらんの緯度経度で苦労したら世界観測から日本観測へ
各APIサービスから取得できる位置情報である緯度経度の測地系の仕様でいつも迷うので世界測地系から日本測地系に変換するコードを残す。自分用の覚書です。

世界測地から日本測地への変換

APIから取得される位置情報である緯度経度は各サービスによって仕様が異なります。GoogleMAPでは世界測地系を基準にしているのに対してじゃらんAPIでは日本測地系を基準にしてるので、Geocodingなどのサービスで取得した緯度経度をそのままじゃらんAPIで使うことはできません。そこで、世界測地から日本測地に変化してやります。まっ知ってますよねぇ~(汗)

私の場合覚えが悪いせいか、いつも少し戸惑いググってしまうので、ここで覚書というこで使ったコードを残しておきます。

サンプルコード

//Geocodingなどで世界測地を取得
$lat = 34.985458;//緯度:世界測地系
$lng =135.757755;//経度:世界測地系

//取得した値をエンコード
$lat_en = urlencode($lat); //緯度をエンコード
$lng_en = urlencode($lng); //経度をエンコード

//日本測地に変換
$lat_ = $lat_en * 1.00010696 - $lng_en * 0.000017467 - 0.0046020;//緯度:日本測地系
$lng_ = $lng_en * 1.000083049 + $lat_en * 0.000046047 - 0.010041;//経度:日本測地系

//小数点以下が多いので切り上げる
$lat_j = ceil($lat_ * 3600000);//緯度:小数点切り上げ Y
$lng_j = ceil($lng_ * 3600000);//経度:小数点切り上げ X

これで日本観測地に変換できたので、$lat_j 、$lng_jをリクエストとして使用すればうまくレスポンスを受けることが出来ます。

今日の選択理由

仕様が違うとややこしいですね。レスポンス取得URL組み立てて自信満々にAPI叩いたら「あれっ!」 っていつもなってしまいます・・・。少しでもそのようなミスがないようにコードを残しておこうかなと・・。同じような想いをお持ちの方のお役に立てればうれしいです。

rss登録 rss登録 rss登録

コメント

コメントをお寄せください。

コメントの投稿

コメントフィード コメントフィード

トラックバックURL: http://select.rash.jp/php/752/trackback/