LoginSignup
59
50

More than 5 years have passed since last update.

日本測地系のミリ秒を世界測地系の度に変換する計算

Last updated at Posted at 2015-10-29

GPSのデータって難しいね

とあるプロジェクトでジオ系のデータを扱うことになったのだが、あまりの複雑さに発狂しそうになった。

専門家ではないので大まかに分けると以下の2つが混在する世界らしい

  • ミリ秒表示と度表示
  • 日本測地系と世界測地系

まあ、いろいろなレガシーな理由があってこの2つが混ざり合っているのだが、要するにやりたいことは 元データをgoogle mapに表示することだ。考えるな、感じろ!

ざっくりざっくりデータの見方

ミリ秒表示は「503329984,128544000」というような小数点を含まない数字で表される。一方度数は「35.70989125,139.81067」のような小数点を含んだ数字で表される。google mapは度数表示

測地系はもはや聞くしかない。ちなみにgoogle mapは世界測地系,Y!地図は日本測地系だ。いまは世界測地の方がポピュラーという噂も聞いたが、いろいろ大人の事情があるらしくまだ混在している

計算式

下記のサイトを参考にさせていただいたところ計算式は以下のとおり。
いま「128544000,503329984」(LAT,LON:緯度経度)日本測地系で与えられる地点を計算すると

ミリ秒から度への変換

元データを3,600,000で割る

128544000 -> 35.70666667
503329984 -> 139.8138844

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

上で求めた度を

jp_lat=35.70666667
jp_lon= 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;

となる(理由はわかりませんw)
まあ、地球は丸いのでちょっと誤差が出るらしい

こうやって計算した結果が

35.70989125,139.81067

google mapに貼ってみると

はい、無事にスカイツリーが表示されました。やったね

ついでにリンクの仕方を覚える

リンクすると地点を表示するようにするにはこんな感じらしい

LATとLONをお間違えなく

参考にさせていただいたサイト:
http://keisukereo.com/it_cafe/geo%E7%B3%BB%E3%81%AE%E5%8D%98%E4%BD%8D%E5%A4%89%E6%8F%9B%E3%83%BB%E6%B8%AC%E5%9C%B0%E7%B3%BB%E5%A4%89%E6%8F%9B%E3%83%84%E3%83%BC%E3%83%AB/

59
50
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
50