- 2009-10-02 (金) 19:05
- ペーペー開発機構
数日悩みに悩みまくった計算式を残しておきます。
相当インターネット上から情報を仕入れさせて頂いたのでそのおかえしです。
悩んでいる方の力添えになれば。。
数十万件の経度緯度情報をGoogle Mapで表示させるべく作戦を考えていました。
最初に頂いたデータは、 ddmmss形式。
つまり、 00.00.00.000 000.00.00.000 と言う形のデータでした。
これをgoogleの地図のパラメーターに入れてしまえばOK!と思っていたのですがこれではだめ。
googleの型は、00.00000000 000.00000000 で表わされる degree形式
のためです。
桁数が近いので、ピリオドを取ってしまえばいいかしら?とやってみても かなりズレマス。 使用できないくらいずれます。
そこで
経度緯度の表示形式変換
http://www.yaskey.cside.tv/mapserver/note/degree.php
なるものを使用させていただいて実験してみました。
計算式さえ解れば エクセルで一気に出来るので実験です。
実験の結果は×
北海道で確認したのですが、3条くらいずれます。 これではだめです。。
色々調べていくと・・・・・・・・・
国土交通省のページにたどり着きました。
http://www.gsi.go.jp/LAW/G2000-g2000-h3.htm
どうやら頂いた経度緯度は、 日本測地系 と呼ばれる方式で吐きだされた数値の様です。
これは、全国に 計測値 がいくつか存在し、その点から何度何分か?で導きされている模様。これは過去の歴史からそうなり、海外のGPSを使ったりする昨今においては厄介者扱いされつつある計算式なのかなーとは思いますが、どうやらまだまだ現役選手。
ココの情報では 東京では 経度が約-12秒、緯度が約+12秒変化 で大体の位置が出るよ!
とあります。 サイトの下部の図を見てみて、嫌な予感はしましたが、、、
http://kawa.at.webry.info/200602/article_6.html
こちらのサイトにその変化式があったので実験してみる事に。
式は
北緯 AA度BB分CC秒DDD/東経 SSS度TT分UU秒VVV
XXXXXX = ( BB * 60000 + (CC+12) * 1000 + DDD ) / 3.6 )
YYYYYY = ( TT * 60000 + (UU-12) * 1000 + VVV ) / 3.6 )
あてはめやってみました。 東京では なるほどほぼ正解。 函館では。。。全く違う町内会です。
これではダメです。
つまり、図にあったようにそれぞれ区分けされている部分で +-12の秒数を変化させて 正解を導き出す???
という仮定が生まれました。。 ただとても面倒ですよね。。
色々実験を重ねるうちに
国土地理院から素敵なソフトがある事にたどり着きました。
http://vldb.gsi.go.jp/sokuchi/
web版
http://vldb.gsi.go.jp/sokuchi/tky2jgd/
ソフト版
http://vldb.gsi.go.jp/sokuchi/tky2jgd/download/down.cgi
日本地図系から世界地図系へ変換してくれるそうです。
これは!と飛びつき、web版で実験!
書式を整えて 変換!!
緯度経度または平面直角座標値
00.00.00.000 を 000000.000 の様なものにして変換です。
北緯 36°05′15.19634″
東経 136°57′51.64609″
の様な形で帰ってきて、これをそのままgooglemapに入力すると ドンピシャ!
検証せずにソフトを入れて 便利な 一括変換機能 を使用して データを変換しました。
変換後も 000000.000 という形式で出てきました。
出てきたデータに ピリオドを付けて00.00.00.000 当然ドンピシャだろうと!!
どう見ても海上です。
?
何度やり直しても海上です。 なぜでしょう。。いろいろやってみました。
悩むこと数十分、 ここで
最初の
経度緯度の表示形式変換
http://www.yaskey.cside.tv/mapserver/note/degree.php
に戻りました。
変換したものは、 日本測地系緯度経度 → 世界測地系にあった緯度経度 です。
Google Map は賢いので、 36°05′15.19634 の 度数や’などの入ったものに関しては理解し正確な場所を入れてくれます。
ただピリオドを取ればいい話ではないのですね。。
http://kawa.at.webry.info/200602/article_6.html
こちらのページを参考にし、
D.M.S 00.00.00.000
D/M/S 00/00/00.000
の経度緯度を
| DMS→Degree | Degree = D + M/60 + S/3600 |
|---|
の計算式に置き換えて 正確な位置を導き出すことに成功しました。
まとめ
日本測地系 の ddmmss 型を ソフトを使用して 世界型の ddmmssに変換
そのddmmss型を式を用いてdegree型に変更。
これで完了です。
なかなかたどり着けませんでした。 ダメですね。
これで地図系はうまくいきそうです。
と言うような作業を今行っております。
- Newer: かなりうまくなった! 立体箱形 キアラの”おしらせ”
- Older: キアラタウン札幌ステーションのフラッシュを新調しました!
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://besthome.cc/sblog/entry-243.html/trackback
- Listed below are links to weblogs that reference
- 経度緯度変換方法 日本からgoogle等(世界へ) from WEBでは教えてくれない家の選び方!