これからの季節に親子でハイキング! >>

GPSに関して,何度か質問をさせていただいております。
以前,GPS(緯度,経度)から,地心座標系(XYZ)への変換について教えていただきました。
その方法で地心座標系(XYZ)を計算することができたのですが,緯度,経度,平均海水面からの高さ(MSL)から,局所平面(ローカル)座標系(X,Y)を求める方法について悩んでおります。
例を申しますと,平坦地の100m(南北方向100m,東西方向100m)の矩形のラインをGPSで計測し,地心座標系で軌跡を求めると,南北方向の100mに対して,距離が70mの長方形の走行軌跡になってしまいます。
GPSで平面での走行距離や方向を求めたいと思っております。
緯度,経度情報からローカルの平面座標系(X,Y)(m単位)を求める方法をご存知でしたら,教えてください。よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

お使いのGPS受信機は測量用ではなくごく一般的な低価格の物ですよね?


そうだと一般にC/Aコードと呼ばれる信号のみを使って位置を計算しますから、S/A(意図的な精度劣化)が解除された現在でも場合によっては数十mの誤差が生じる事があります。S/Aがかかっていた頃は百mを越えるのは当たり前でした。
また高度の誤差はその倍以上になります。

ですから一台の受信機である点で測位しその後別の地点に移動して再び測位した場合、確率的には低いですが最悪誤差は倍になります。
通常わずか100m離れた2点であればどういう移動体か存じませんがその間の移動時間は短いでしょうからそのような距離計算みたいな相対位置に大きな誤差が生じることはまず無いと思われますが、もし誤差が大きいとすればそれは測位計算に使われた衛星(の組み合わせ)がその2点で異なる場合が考えられます。この場合は測位位置が急に離れた場所にジャンプします。
またDGPS対応の受信機ならそれを使えば単独測位でも誤差を数m程度に軽減できますがDGPSデータの受信機が別途必要になりますね。

さてお尋ねの座標変換と距離と方位の計算方法は、
国土交通省国土地理院のホームページ
http://www.gsi.go.jp/
から「測地測量と地殻変動」→「便利なプログラム・データ」→「測量計算」とリンクを辿ると
「距離と方位角の計算」や「平面直角座標への換算」というのがありそこからさらに計算式へのリンクがあって
http://vldb.gsi.go.jp/sokuchi/surveycalc/algorit …
に辿りつきます。
ここに緯度・経度から平面直角座標への変換式や2点間の距離と方位の計算式などへのリンクがあります。

でも様々な距離の計算式で高度を考慮した物はまず見かけません。結局必要な精度内で地球表面を平面とみなしても差し支えない短い距離の2点間で勾配が大きいのなら地心直角座標で三次元的に計算するのがいいでしょう。例えば御殿場から富士山五合目までの走行距離が知りたいならGPS受信機から(通常1秒毎に)出力されるデータを記録しておいて適当な時間間隔の位置データ同士で移動距離を算出しそれを積算すればいいと思います。

山の展望と地図のフォーラムの案内ページ http://www.nifty.ne.jp/forum/fyamap/
の「地図の広場」の「距離と方位に関する議論」もおすすめします。
直接リンクは http://www.nifty.ne.jp/forum/fyamap/kyorihoi.htm

参考URL:http://vldb.gsi.go.jp/sokuchi/surveycalc/algorit …
    • good
    • 0
この回答へのお礼

sunspot_number様,詳細な解説ありがとうございます。当方の使用環境は公称制度0.2m(DGPS運用)の受信機を使用しております。今までは,200四方の平面上でほぼ,緯度方向をX,経度方向をY軸とした直交座標を設定し,設定座標原点から移動点への緯度差,経度差に1秒あたり??mの距離を乗じてm単位の座標値を得るという簡易的な方法で行っておりました。GPS衛星の配置のコンディションによりますが,0.1m程度の精度での位置検出をしておりました。
しかし,正確な座標変換式を用いて,座標値を算出したいと考え,質問させていただきました。sunspot_number様にご紹介いただきましたURLを拝見してみて,とても役に立ちそうです。早速実践してみたいと思います。貴重な情報ありがとうございました。今後ともよろしくお願いします。

お礼日時:2002/10/07 20:49

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QGPS(緯度,経度)座標から,XYZ座標を求めるには?

GPSの初心者です。GPS受信機から出力されるNMEAのGPGGA等で出力される緯度,経度から,地球を中心とするXYZ座標に変換する場合,
下記のURLの計算式(http://vldb.gsi.go.jp/sokuchi/surveycalc/trans_alg/trans_alg.html)
から求められるようですが,GPSから得られる,緯度,経度以外に,
「楕円体高」,「卯酉線曲率半径」,「ジオイド高」,「第一離心率」,「標高」は,どのようにして求めているのでしょうか?
ご教授ください。
よろしくお願いします。

Aベストアンサー

もし測地系の変更が可能な機種なら WGS-84 を選択します。(通常デフォルトでWGS-84だと思いますが取り扱い説明書をご覧下さい)

GPGGAメッセージ(センテンス)のフォーマットは、
----- 参考文献1のP.87の5行目より引用 ここから -----
$GPGGA,hhmmss.ss,llll.lll,a,yyyyy.yyy,a,Q,NN,H.H,A.A,M,G.G,,M,T.T,RSID*CS<CR><LF>
-------------------- ここまで --------------------
(注意!「G.G,,M」は「G.G,M」の間違いです)
「A.A(可変長)」のフィールドがアンテナ高度(平均海面からの高度)
「G.G(可変長)」のフィールドがジオイド(平均海面)とWGS-84楕円体との高度差です。
ですからお示しのホームページの式の h はこの二つのデータを加算したものになります。

WGS-84楕円体は、赤道半径 a = 6378137[m]、扁平率 f の逆数 1/f = 298.257223563 ですので、
第一離心率 e の二乗 e^2 = 2 * f - f^2 = 0.00669437999014 となり、
卯酉線曲率半径 N = a / sqrt( 1 - e^2 * sin(φ)^2 ) です。
※ただし、φは緯度、「*」は乗算、「/」は除算、「^」はべき乗、sqrt()は平方根関数、sin()は正弦関数をそれぞれ表す。

NMEA-0183フォーマットの説明は次のページが参考になるでしょう。
http://bg66.soc.i.kyoto-u.ac.jp/forestgps/nmea.html

【参考文献】
1.「SVeeSix 6チャンネルGPSセンサ 仕様およびユーザーズマニュアル 第D版」トリンブル ジャパン株式会社
2.土屋淳・辻宏道著「やさしいGPS測量」社団法人 日本測量協会

参考URL:http://bg66.soc.i.kyoto-u.ac.jp/forestgps/nmea.html

もし測地系の変更が可能な機種なら WGS-84 を選択します。(通常デフォルトでWGS-84だと思いますが取り扱い説明書をご覧下さい)

GPGGAメッセージ(センテンス)のフォーマットは、
----- 参考文献1のP.87の5行目より引用 ここから -----
$GPGGA,hhmmss.ss,llll.lll,a,yyyyy.yyy,a,Q,NN,H.H,A.A,M,G.G,,M,T.T,RSID*CS<CR><LF>
-------------------- ここまで --------------------
(注意!「G.G,,M」は「G.G,M」の間違いです)
「A.A(可変長)」のフィールドがアンテナ高度(平均海面からの高度)
「G....続きを読む

Q緯度・経度からの距離計算

ある地点の緯度・経度ともう一方のある地点の緯度・経度が
わかっているとして、その各緯度・経度より2地点間の距離を
計算できないのでしょうか?
計算方法を知りたいのです。
なんか公式みたいなものはないのでしょうか?
なんかヒントになるサイトのURLでもかまいません。
お願いします。教えて下さい。

Aベストアンサー

簡略バージョン(地球を完全な球とみなす)と,精密バージョン(地球を回転楕円体とみなす)があります。

まずは簡略バージョン。
ある地点の緯度・経度をδ1・λ1,もう一方の地点はδ2・λ2とします。
経度は,東経を正,西経を負。緯度は,北緯を正,南緯を負とします。(実は逆でもよい。要は,東と西,北と南で,それぞれ符号が異なっていればよいのです)
また,2地点間の角度(地球の中心から見た時の)をdとします。
すると,球面三角法の公式より,
cos d = (sinδ1)×(sinδ2) + (cosδ1)×(cosδ2)×cos(λ1-λ2)
となります。ここに緯度・経度をあてはめて,cos dが求まります。
cos dから角度dが逆三角関数cos^-1で求まります。電卓のcos^-1キーを使うと便利です。ただし,dはラジアンで求めてください。(緯度・経度は度単位でかまいません)
あとは,距離(km)=6370×dで2地点間の距離が出ます。(6370kmは地球の平均半径です)

やや精密バージョンは,No.1の参考URLに出ています。楕円体であるため,地心緯度と地理緯度にわずかながら差が生じているので,それを補正します。

以上の方法の問題点は,2地点間が近い時に誤差が大きくなることです。
たとえば,2地点間の距離が1kmのとき,d=0.9999999877となりますが,末尾を四捨五入してd=0.999999988とすると,距離=0.54kmとなってしまいます。
これはcosを使っているからです(cosは角度が小さいとほとんど変化しませんね)。

そのような場合は,次の近似式が使えます。
2地点の緯度の平均(ふつうに足して2で割る)をδ0とすると,
d=√[{(λ1-λ2)×(cosδ0)}^2 + (δ1-δ2)^2]
角度は度でもラジアンでも構いません(式中の値がすべて同じ単位であれば)。

もっと精密な方法は,国土地理院のページに載っています。(参考URL)
コンピュータならよいのですが,手計算で試みるのはかなり大変そうです。

参考URL:http://vldb.gsi.go.jp/sokuchi/surveycalc/bl2salfa/bl2salfa.html

簡略バージョン(地球を完全な球とみなす)と,精密バージョン(地球を回転楕円体とみなす)があります。

まずは簡略バージョン。
ある地点の緯度・経度をδ1・λ1,もう一方の地点はδ2・λ2とします。
経度は,東経を正,西経を負。緯度は,北緯を正,南緯を負とします。(実は逆でもよい。要は,東と西,北と南で,それぞれ符号が異なっていればよいのです)
また,2地点間の角度(地球の中心から見た時の)をdとします。
すると,球面三角法の公式より,
cos d = (sinδ1)×(sinδ2) + (cosδ1)×(cosδ2)×cos(λ...続きを読む

Q緯度・経度の値をエクセルで変換したい

60進法で度(゜)分(')秒(")表記された緯度・経度があります(例えば35゜41'46.23"と130゜22'06"など。ただし秒の小数点以下の数値は10進法)。
これをエクセル関数で10進法(35.69617500と130.36833333)に変換したいのですが,どのようにすればよいでしょうか。また,これを逆に変換するにはどうすればよいでしょうか。
詳しい方,ご教示頂けましたら幸いです。

Aベストアンサー

文字列を数値化することになります。
分、秒の部分毎に10進数の小数に変換して加算します。
=LEFT(A2,FIND("゜",A2)-1)+MID(A2,FIND("゜",A2)+1,FIND("'",A2)-FIND("゜",A2)-1)/60+MID(A2,FIND("'",A2)+1,LEN(A2)-FIND("'",A2)-1)/3600
また、逆変換は10進数の小数から分、秒を逆算して切り出します。
=INT(B2)&"゜"&TEXT(INT(MOD(B2,1)*60),"00")&"'"&TEXT((MOD(B2,1)-INT(MOD(B2,1)*60)/60)*3600,"00.00")&""""
貼付画像はExcel 2013で検証した結果ですが他のバージョンでも再現できるはずです。

Q緯度、経度の 10進法と 60進法の変換方法について

135°46'10.90" のように分以下が60進法で記述された経度を
135.6733223 のように 分以下が10進法の方式に変換したいと思います。(相互変換)

このような時どのように計算すればいいのでしょうか?

10進数を2進数に変換くらいはなんとか理解できたのですが、60進法で分とか秒とか出てくるとさっぱりわかりません。

説明できる方いらっしゃいましたらよろしくお願いいたします。

Aベストアンサー

135°46'10.90"なら
135 + 46÷60 + 10.90÷60÷60

135.6733223なら
整数部分だけ取り出して135°
小数部分だけに60をかける
0.6733223×60=40.399338

整数部分だけ取り出して40'
小数部分だけに60をかける
0.399338×60=23.96028

23.96028"
よって、135°40'23.96028"

60をかけたり割ったりすればいいです。

Q緯度経度から方位角を求める

いつもお世話になっています。

緯度と経度が分っている2点の方位角をプログラム(C言語)求めたいのですが、国土地理院のHPにあるような計算式だと計算に時間が掛かってしまいます。
精度はそこそこで簡単な計算方法があれば教えてください。
【国土地理院HP】
http://vldb.gsi.go.jp/sokuchi/surveycalc/algorithm/

Aベストアンサー

その「そこそこの精度」が一体どの程度かお示し下さらないと回答する方はちょっと困ります。
例えば目的が測量とカーナビゲーションとでは月と鼈ほどの大きな差があります。

以下の方法は地球を球体とみなして球面三角法で解く簡便なものなので測量には使えませんが、
日本付近の緯度での2点間の距離400kmほどで誤差は0.1度を少し超える程度です。

地点Aの経度と緯度をそれぞれL1,B1とし、
地点Bの経度と緯度をそれぞれL2,B2とし、
地点Aからみた地点Bの方位(真北を0度として東回りにはかった角度)をθとすると以下の手順で
求められます。

Y = cos(B2) * sin(L2 - L1)
X = cos(B1) * sin(B2) - sin(B1) * cos(B2) * cos(L2 - L1)
θ[rad] = atan2(Y, X)
もし θ[rad]<0 なら θ = θ + 2π とし結果を0から2π未満に収めます。
θ[deg] = θ[rad] * 180 / π

※ 「*」は乗算、「/」は除算、sin()は正弦関数、cos()は余弦関数、
  atan2(y, x)は逆正接関数(返り値は-2π~+2π)、
  θ[rad]は弧度法でのラジアン単位の角度、θ[deg]は度単位の角度をそれぞれ表す。
  経度は東経を「+」西経を「-」、緯度は北緯を「+」南緯を「-」の数として扱います。

地球を回転楕円体として扱うもっと精度の高い式もありますので先の式で不足なら必要な精度をお示し下さった上でお尋ね下さい。

まずは参考ページをご覧下さい。
http://forum.nifty.com/fyamap/kyorihoi.htm
@niftyでの距離と方位の計算に関する書き込みのLOGです。

http://www.arknext.com/utility/contents/gccj.html
様々な回転楕円体要素(球体を含む)での距離と方位を計算してくれるページです。

書籍では「現代測量学 第4巻 測地測量1」社団法人日本測量協会 をお薦めします。

参考URL:http://forum.nifty.com/fyamap/kyorihoi.htm

その「そこそこの精度」が一体どの程度かお示し下さらないと回答する方はちょっと困ります。
例えば目的が測量とカーナビゲーションとでは月と鼈ほどの大きな差があります。

以下の方法は地球を球体とみなして球面三角法で解く簡便なものなので測量には使えませんが、
日本付近の緯度での2点間の距離400kmほどで誤差は0.1度を少し超える程度です。

地点Aの経度と緯度をそれぞれL1,B1とし、
地点Bの経度と緯度をそれぞれL2,B2とし、
地点Aからみた地点Bの方位(真北を0度として東回りにはかった角度)を...続きを読む

Q【至急!】座標データを緯度経度に変換

業務上、行き詰まっております。 【至急!】でお願いできれば助かります。

平面直角座標9系(世界測地)のデータがあります。
このデータを緯度経度に変換したいのですが、エクセルでどのように計算すればよろしいでしょうか?

座標データはたくさんあります。一部HPで、一つずつ変換することができるようなのですが、とても手間がかかるので、エクセルでできたらと思いました。また、別のHPで、とても専門的な長い計算式を見つけたのですが、エクセルではできないでしょうか?

一般事務員で、専門的なことは全く分かりません。どうぞよろしくお願いいたします。

Aベストアンサー

No.5捕捉回答

=> この5)、6)は、世界測地系から日本測地系への変換結果という理解でよろしいでしょうか?
良いと思いますよ。

緯度経度だけなら、も一つ戻って
http://surveycalc.gsi.go.jp/sokuchi/surveycalc/xy2blf.html
の方でもよかったのかな。

Q日本測地系のXY座標から緯度・経度を求める方法

こんばんは。
過去ログからみつけることができなかったので、質問させていただきます。

手持ちの旧座標(日本測地系)のXY座標から、緯度・経度を求めるには、どのような計算が必要になるのでしょうか。

GPSを使う、という方法もありますが、もし計算方法があるのであれば、と思っています。

手持ちの図書も少なく、浅学のため、もしご存じでしたらご指導ください。

Aベストアンサー

こんな感じなんでしょうか

http://vldb.gsi.go.jp/sokuchi/surveycalc/trans_alg/trans_alg.html

めんどくさければ、

http://vldb.gsi.go.jp/sokuchi/surveycalc/xy2blf.html

こちらで計算してしまうのが手っ取り早いです。

Q2点のGPS座標から距離を求めたい

GPS座標(wgs84)の2点間の距離を出す方法がわかりません・・・

単純に何秒=何mだと思ったら、google地図で調べていたら経度と緯度で1秒の大きさがまったく違ったため、プログラムに誤差が起きてしました・・・

何が起きているのかわからないので、教えてください(><)

Aベストアンサー

方法1.ヒュベニ式により変換
  http://okwave.jp/qa4093322.html

方法2.WGS84→平面直角座標系変換→距離計算
  http://vldb.gsi.go.jp/sokuchi/datum/tokyodatum.html

なお、単純に値が欲しいだけでしたら、こちらのサイト(国土地理院)を利用されるのが一番確実です。
http://vldb.gsi.go.jp/sokuchi/surveycalc/bl2stf.html

Q【座標の変換】日本測地系から世界測地系へ

当方、カーナビのポイント情報をGoogleMapに載せたいと思い
試行錯誤しておりますが、どうも位置がずれてしまい色々調べていたら
カーナビの座標は日本測地系で表示されており、GoogleMapなどは
世界測地系で表示されている事がわかりました。
色々調べていたのですが、どうしても日本測地系から世界測地系への
変換ができず困っております。

どなたかご存知の方ご教授ください。

例:カーナビで経度【35.14253】緯度【136.16335】をGoogleMapに表示したい時
どのような計算式で変換すればよろしいでしょうか?計算過程もレクチャーして
頂けると大変助かります。

Aベストアンサー

#5です。
たびたびすみません。
精度が間違って書いています。訂正してください。

1/20万の対応表で作れば、誤差は10m程度、1/5万の回帰で2m程度の誤差、1/2.5万で回帰式を作れば、

1/20万の対応表で作れば、誤差は40m程度、1/5万の回帰で10m程度の誤差、1/2.5万で回帰式を作れば、

なお、1/5万の回帰で2m程度の誤差でしょう。

なお、1/5万の回帰で10m程度の誤差でしょう。
これはダブっていましたが。

また、#4さんの式は、
B世界 = 0.99989305*B日本 + 0.000017464*L日本 + 0.0046017
L世界 =0.999916957*L日本 - 0.000046038*B日本 + 0.010040
ということでしょう。

QExcelの自動計算で緯度・経度を60進法⇔10進法で相互変換したい

Excelの自動計算で60進法の緯度・経度を10進法に、
10進法の緯度・経度を60進法に相互変換したいのですが、
計算式をご存知の方はいらっしゃいますでしょうか。

具体的には、
経度139453.5 ⇔ 経度139.759774
といった感じです。

地理の項目で質問して計算方法はわかったのですが、
これをExcelの計算式にしようとしたところ行き詰まりました…

http://okwave.jp/qa3217137.html

よろしくお願いします。

Aベストアンサー

>経度139453.5 ⇔ 経度139.759774
まずこれは変ですね。経度139.759774なら1394535.19になるはずです。

ともあれ計算式は、A1に1394535.19があるとき
=INT(A1/10^4)+INT(MOD(A1,10^4)/100)/60+MOD(A1,100)/60^2
で139.759774が求められます。

またA2に139.759774があるとき
=VALUE(INT(A2)&TEXT(INT(MOD(A2,1)*60),"00")&TEXT(MOD(MOD(A2,1)*60,1)*60,"00.00"))
で1394535.19が求まります。

意味は考えてみてください。上の式の方が考えやすいと思います。下の式はその反対を行っているだけです(ただし桁数を合わせるため、一旦文字列にしていますが)


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

価格.com 格安SIM 料金比較