緯度経度であらわされる2点の間の地点を求める式を教えてください


Pa:(lat1, lng1)
Pb:(lat2, lng2)

PaとPbの間のPcを求める式を教えてください。
ただし、「ちょうど真ん中」ではなくPaからPbに向けて、割合rの地点とします。

r = 0.0 → Pc=Pa
r = 0.5 → Pc=PaとPbのちょうど真ん中
r = 1.0 → Pc=Pb

よろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/08/12 09:23:35
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
id:you_got

【補足】

・Pc は地表上にあるものとします。

・Pa - PB 間は 10m ~ 数Km 程度の距離です

【参考】ちょうど真ん中を求める式でしたら、下記サイトにありました

http://www.movable-type.co.uk/scripts/latlong.html

ベストアンサー

id:holoholobird No.2

回答回数574ベストアンサー獲得回数104

ポイント250pt

コメント欄にあるように、地理座標系はその特性上メルカトル図と同様に計算することができます。

Pc:(lat3,lng3)とします。

緯度の定義より(lat1-lat3):(lat3-lat2)=Pa-Pcの弧の長さ:Pc-Pbの弧の長さ

なぜならば、緯度は地球の中心と赤道を基底面とした角度で表されるので、
Pa-Pcの弧の長さ=地球の円周*(lat1-lat3)/2π
Pc-Pbの弧の長さ=地球の円周*(lat3-lat2)/2π

同様に経度についても成立します。

よって、求める地点のlat3とlng3はこの比に等しく、

(lat1-lat3):(lat3-lat2)=r:1-r
(1-r)*lat1-(1-r)*lat3=r*lat3-r*lat2
lat3=(1-r)*lat1+r*lat2

同様に
lng3=(1-r)*lng1+r*lng2

もともと経緯度自体が(主に海図の)座標計算を簡便に行うために発達したものなので、20世紀前半を中心に発達した高等数学を使わずとも、初等数学で導けるようになっています。

id:you_got

こんな簡単に求められるんですね!「緯度経度の座標計算は複雑でわかりにくい」と思い込んでいました。勉強になります。ありがとうございます!

2013/08/12 09:27:41

その他の回答2件)

id:rsc96074 No.1

回答回数4504ベストアンサー獲得回数437

ポイント125pt

 こちらは参考になるでしょうか。一度、下記URLの公式から2点の間の距離を求めて、その後、割合rをかければいいと思います。
●2都市間の距離と方位角
http://keisan.casio.jp/exec/system/1315820022
 上のは球モデルで分かりやすいですが、楕円体に基づくヒュベニの公式という、もっと精度が高いのがあるみたいです。(^_^;
●二地点の緯度・経度からその距離を計算する(日本は山だらけ?)
http://yamadarake.jp/trdi/report000001.html
 さらに調べてみると、Lambert-Andoyerの公式が一番精度がいいようです。下記の二つ目のURLには誤差の評価のグラフがあります。Pa - PB 間の距離が短いので比較的簡単なヒュベニの公式でもいいのかな。(^_^;
●PHP:Distance - Gadgety
http://www.gadgety.net/shin/web/php/distance.html
●緯度経度から2点間の距離を求める
http://bit.ly/13nkUbS
●測地線航海算法 (Geodesic Sailing)
http://www.toyama-cmt.ac.jp/~mkawai/lecture/sailing/geodetic/geosail.html
●道のり計算方法について
http://www.yuyuyu.jp/other/google_maps/inv_distance.htm

※参考URL
●地球を測ろう
http://www.ic.daito.ac.jp/~mizutani/gps/measuring_earth.html
●[PDF] 1 球面上の直線 - 熊本大学
http://www.sci.kumamoto-u.ac.jp/~hisinoue/2010/2010SphericalGeometry.pdf

他2件のコメントを見る
id:rsc96074

 上の公式を使ってJavaでプログラムを作って検証してみました。(^_^;
http://d.hatena.ne.jp/rsc96074/20130811/1376171841

2013/08/11 11:38:56
id:you_got

検証用のプログラムまで!ありがとうございます。

2013/08/12 09:31:06
id:holoholobird No.2

回答回数574ベストアンサー獲得回数104ここでベストアンサー

ポイント250pt

コメント欄にあるように、地理座標系はその特性上メルカトル図と同様に計算することができます。

Pc:(lat3,lng3)とします。

緯度の定義より(lat1-lat3):(lat3-lat2)=Pa-Pcの弧の長さ:Pc-Pbの弧の長さ

なぜならば、緯度は地球の中心と赤道を基底面とした角度で表されるので、
Pa-Pcの弧の長さ=地球の円周*(lat1-lat3)/2π
Pc-Pbの弧の長さ=地球の円周*(lat3-lat2)/2π

同様に経度についても成立します。

よって、求める地点のlat3とlng3はこの比に等しく、

(lat1-lat3):(lat3-lat2)=r:1-r
(1-r)*lat1-(1-r)*lat3=r*lat3-r*lat2
lat3=(1-r)*lat1+r*lat2

同様に
lng3=(1-r)*lng1+r*lng2

もともと経緯度自体が(主に海図の)座標計算を簡便に行うために発達したものなので、20世紀前半を中心に発達した高等数学を使わずとも、初等数学で導けるようになっています。

id:you_got

こんな簡単に求められるんですね!「緯度経度の座標計算は複雑でわかりにくい」と思い込んでいました。勉強になります。ありがとうございます!

2013/08/12 09:27:41
id:dawakaki No.3

回答回数797ベストアンサー獲得回数122

ポイント125pt
  1. 2地点間の距離と方位角を求めます。
  2. 求まった距離にrを掛けて移動距離を算出します。
  3. 方位角と移動距離から、緯度・経度を求めます。

Java, 経度緯度から2点間の距離と方角(方向・方位)を求める
http://www.serendip.ws/archives/5281

距離と方位角から楕円面上で到達点を求める
http://www.gammasoft.jp/direct/

id:you_got

シンプルな問題にわけると解きやすそうですね。ありがとうございます。

2013/08/12 09:34:53
  • id:sibazyun
    この距離なら、地球の丸みを考慮しなくてよいだろうから、単なるx,yの平面座標でOK。
  • id:sibazyun
    参考にあげている式は、地球の丸みを考慮した式。
  • id:fnwa
    “緯度の定義より(lat1-lat3):(lat3-lat2)=Pa-Pcの弧の長さ:Pc-Pbの弧の長さ”というのは、地球を球体であると仮定しても非ユークリッド幾何平面である地表面では成立しないので間違い。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません