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

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

A 回答 (3件)

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



まずは簡略バージョン。
ある地点の緯度・経度をδ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/bl2salf …
    • good
    • 2
この回答へのお礼

すごい・・・・。
なんかめちゃ専門知識ですね。
ありがとうございます。

お礼日時:2002/04/10 12:07

補足です。


距離が近い時の救済策として,cosがだめならsinを使おう!という方法もあります。

以下,2地点の緯度の差をΔδ,経度の差をΔλと書きます。
回答No.2で書いた公式を少し変形すると,
sin^2 (d/2) = sin^2 (Δδ/2) + (cosδ1)×(cosδ2)×sin^2 (Δλ/2)
これを用いてsin^2(d/2)を求め,ルートをとって,arcsinをとって(ラジアンで),2倍すれば,dが求まります。

回答No.2で書いた近似式は,2地点を結ぶ線を長方形の対角線とみなしているわけです。
いいかえれば,λ1-λ2に対応する距離は,どちらの地点の緯度でも同じとみなしています。
したがって,2地点の緯度差が大きくなると,誤差も増えます。
しかし,ここで書いた方法は,近似式ではなく,もとの式と同値です(証明してみてください)ので,2地点が南北に離れていても使えます。
    • good
    • 3
この回答へのお礼

ありがとうございます。

お礼日時:2002/04/10 12:07

「緯度 経度 距離計算」で検索をかけたら以下のサイトが見つかりましたがどうでしょうか。



http://www2.neweb.ne.jp/wd/nobuaki/New_Homepage/ …

参考URL:http://www2.neweb.ne.jp/wd/nobuaki/New_Homepage/ …
    • good
    • 1
この回答へのお礼

どうもありがとうございます。参考にさせていただきます。

お礼日時:2002/04/10 12:03

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

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

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

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

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

Q緯度経度入りの世界地図をネットで

緯度経度付きの世界地図又は日本地図がインターネットに公開されていませんか。

九州・北海道を含み島を除く日本本島の大体の緯度経度の範囲(誤差の大きさを視覚的に知った上で)を知りたい。

日本の最北、最南点や県ごとの緯度経度並びに、住所から求める正確な緯度経度等のホームページは検索できました。しかし私の希望は九州・北海道を含み島を除く日本本島の大体の緯度経度をその誤差を視覚的に認識したうえで簡単に知ることです。そのために、緯度経度の線が入った地図が見たいのです。
よろしくお願いします。

Aベストアンサー

日本全国を一目で眺めるなら、例えば国土地理院の地磁気に関するページに在る「磁気図(偏角)」はいかがでしょうか。
http://vldb.gsi.go.jp/sokuchi/geomag/images/menu_03/2000d.jpg

もっと細かく見たいなら、
国土地理院の地図閲覧サービス
http://watchizu.gsi.go.jp/
の左のメニューの一番上にある「検索画面」をクリックすると1度づつに経緯度で区切られた日本地図が表示されます。
緯度と経度の線の外に数値が示されています。
ここから見たい地域をクリックすれば、そ地域をさらに拡大した地図が見られます。
2万5千分の一の地形図の表示まで行くと、位置を知りたい任意の地点にアイコンを合わせてダブルクリックすると別ウィンドウに経緯度が表示されます。

日本以外なら、例えば、世界の地図リンク集のページが参考になるかも知れません。
http://hp.vector.co.jp/authors/VA017536/world/map.htm
ここに張られたリンクには、紙の地図を画像化したものが有ったりして、そういうのには緯線。経線が入っているものが多いです。

日本全国を一目で眺めるなら、例えば国土地理院の地磁気に関するページに在る「磁気図(偏角)」はいかがでしょうか。
http://vldb.gsi.go.jp/sokuchi/geomag/images/menu_03/2000d.jpg

もっと細かく見たいなら、
国土地理院の地図閲覧サービス
http://watchizu.gsi.go.jp/
の左のメニューの一番上にある「検索画面」をクリックすると1度づつに経緯度で区切られた日本地図が表示されます。
緯度と経度の線の外に数値が示されています。
ここから見たい地域をクリックすれば、そ地域をさらに拡大した地図...続きを読む

Q2地点の緯度経度と2地点からの角度から一点の緯度経度を求められるのでしょうか?

初めて質問いたします。

ある2地点AとBがあるとします。
AとBの緯度経度が実際の計測で分かっていて、その直線距離も分かっています。
その2点を結ぶ直線上から緯度経度不明の地点Cまでの、AとBからの角度(360°換算)と距離が分かっていたら地点C(つまりAとBからの直線の交点)の緯度経度は分かるのでしょうか?
自分の研究に関わることなので、これを機にきちんと理解したいと思います。
宜しくお願いいたします。

Aベストアンサー

こんにちは。


 こういう測地な質問は個人的には嬉しいですね。


 さて、大事なことを申します。
 基本的に
「経度・緯度から直接他地点を求めることはできない」
です。
 これ重要です。


 中高の数学で、直角座標(xy座標、デカルト座標)上で、sinやcosを使った座標の求め方を習われましたよね?
 あれです。


 「あれ」と「今回」とで、何か大きく違うことはありませんか?

 そうです、「あれ」は
・(x,y)
の直角座標であったことに対して、「今回」は
・(N,E)
の経緯度座標なんです。


 早い話、
「経緯度座標からでは無理」
です。


 具体的には、
「経緯度座標」→「平面直角座標」
に変換してやる必要があります。


 変換するためのサイトは、国土地理院のHP内にあります。(残念ながら携帯からなのでURLは貼れません)


 「系」を選択するとき、都道府県・離島ごとに系が違うので注意しましょう。


 その後は、
・ACがわかっている
・∠OACがわかっている

ことから、

"xC"="xA"+"AC"*cos"∠OAC"
"yC"="yA"+"AC"*sin"∠OAC"

で求まります。

※地図の座標は、xが北、yが東です、つまり数学とは反転していますので注意
※Oは真北です。


 後は、求まった(xC,yC)を、国土地理院のサイトから

「平面直角座標」→「経緯度座標」

に変換してやれば終了です。



 Bは、∠BAC(→∠OAC)を求めるために必要であって、Cを求めるためにはBは直接は要りません。


 なお、実際に点Cに基準点を設置するとかなりますと、誤差等を計算するためにこれでは不十分ですのでお気をつけください。

こんにちは。


 こういう測地な質問は個人的には嬉しいですね。


 さて、大事なことを申します。
 基本的に
「経度・緯度から直接他地点を求めることはできない」
です。
 これ重要です。


 中高の数学で、直角座標(xy座標、デカルト座標)上で、sinやcosを使った座標の求め方を習われましたよね?
 あれです。


 「あれ」と「今回」とで、何か大きく違うことはありませんか?

 そうです、「あれ」は
・(x,y)
の直角座標であったことに対して、「今回」は
・(N,E)
の経緯度...続きを読む

Qsqlで受け取った緯度経度から地図を作成するjavascript

いつもありがとうございます。
前回のチェックボックスの質問の続きとなるのですが、チェックボックスの選択数によってN個の$rows = mysql_num_rows($result);がきたとします。それぞれ 名前=$row['name'],緯度=$row['ido'], 経度=$row['keido']です。

<?php 抜粋
//結果セットの行数を取得する
$rows = mysql_num_rows($result);

//表示するデータを作成
while($row = mysql_fetch_array($result)) {
$markerData.="{name:'".$row["name"]."', lat:".$row["ido"].",lng:".$row["keido"]."},\n<br>";

こちらの$markerDataをプリントしたものを、下のvar markerDataにコピペすると地図ができるのですが、下記のように内容をphpでechoするとできません。
根本的に考え方がちがうのでしょうか?
markerData.length;の値が取れていないことが原因でしょうか?
よろしくお願い申し上げます。




<script type="text/javascript">
var map;
var marker = [];

var markerData = [ // マーカーを立てる場所名・緯度・経度
{
"<?php echo $markerData; ?>"    //←ここです!!
}
];
var center = {
lat: 34.987717, // 緯度
lng: 139.863876 // 経度
};

function initMap() {

var mapLatLng = new google.maps.LatLng({lat: markerData[0]['lat'], lng: markerData[0]['lng']}); // 緯度経度のデータ作成
map = new google.maps.Map(document.getElementById('sample'), { // #sampleに地図を埋め込む
center: center,
zoom: 12 // 地図のズームを指定
});
// マーカー毎の処理
for (var i = 0; i < markerData.length; i++) {
markerLatLng = new google.maps.LatLng({lat: markerData[i]['lat'], lng: markerData[i]['lng']}); // 緯度経度のデータ作成
marker[i] = new google.maps.Marker({ // マーカーの追加
position: markerLatLng, // マーカーを立てる位置を指定
map: map // マーカーを立てる地図を指定
});
}
</script>

ちなみにかいた順番は以下のとおりです。
<?php >
<html>
<body>
<javascript></script>
</body>
</html>

いつもありがとうございます。
前回のチェックボックスの質問の続きとなるのですが、チェックボックスの選択数によってN個の$rows = mysql_num_rows($result);がきたとします。それぞれ 名前=$row['name'],緯度=$row['ido'], 経度=$row['keido']です。

<?php 抜粋
//結果セットの行数を取得する
$rows = mysql_num_rows($result);

//表示するデータを作成
while($row = mysql_fetch_array($result)) {
$markerData.="{name:'".$row["name"]."', lat:".$row["ido"].",lng:".$row["keido...続きを読む

Aベストアンサー

こんにちは
phpはよく知らないのと、(非公開なので)前回の内容もわからないのですが…

>コピペすると地図ができるのですが~~
HTMLに出力した内容とコピペした時の内容とが違っていませんか?
(出力されたソースを確認してみればわかると思います)

よくわかってませんが、
var markerData = [
{
{ name: 'hoge', lat: 34.1, lng: 139.1 },
<br>{ name: 'fuga', lat: 34.2, lng: 139.2 },
   ・・・・・・
<br>{ name: 'piyo', lat: 34.3, lng: 139.3 },
<br>
}
];
のようになっていませんか?

多分、オブジェクトの階層が違うのと、<br>が余計なのでは。
できれば最後のカンマも除いておいた方がよろしいかと。


最終的に、
var markerData = [
{ name: 'hoge', lat: 34.1, lng: 139.1 },
{ name: 'fuga', lat: 34.2, lng: 139.2 },
   ・・・・・・
{ name: 'piyo', lat: 34.3, lng: 139.3 }
];
のように出力できていれば動作するものと推測します。

こんにちは
phpはよく知らないのと、(非公開なので)前回の内容もわからないのですが…

>コピペすると地図ができるのですが~~
HTMLに出力した内容とコピペした時の内容とが違っていませんか?
(出力されたソースを確認してみればわかると思います)

よくわかってませんが、
var markerData = [
{
{ name: 'hoge', lat: 34.1, lng: 139.1 },
<br>{ name: 'fuga', lat: 34.2, lng: 139.2 },
   ・・・・・・
<br>{ name: 'piyo', lat: 34.3, lng: 139.3 },
<br>
}
];
のようになっていませんか?

多分、オ...続きを読む

Q緯度・経度のA地点~B地点までの、直線距離が知りたいです

A地点・・・北緯30.00、東経140.00
B地点・・・北緯35.00、東経142.00

このA地点~B地点までの、直線距離が知りたいです。
単位は、マイルかキロメートルのどちらか。
大体でもかまいません。

EXCELに位置を入力したら距離が出るようにしたいです。
または、わかるサイトがあったら教えてください。

みなさんは、どういう風に距離を出しているのか知りたいです。
教えてください。
よろしくお願いいたします。

Aベストアンサー

単純に・・・・
地球を外周4万kmのまん丸型として・・・
4万km / 360 = 111.111 km ・・・度
111.111 / 60 = 1851.85 m・・・・分 (1海里)
1851.85 / 60 = 30.86 m・・・・秒
これで、経度間・緯度間の距離がわかるので、あとはピタゴラスの定理を使えば二点間の距離がわかる・・・・・・・と思う。

Q緯度・経度を入力して地図を見る携帯サイト

緯度・経度を入力して地図を見ることができる携帯サイトをどこかご存知でしたらご教示ください。

地図を見みながら緯度経度を表示するサイトは有るようですが、逆のことを行いたいのです。よろしくお願いいたします。

Aベストアンサー

緯度経度をどうやって取得するのか疑問なのですが、、
きっとそれがそういったサービスがない理由なのでしょう。

けど携帯で緯度経度→地図ならいいんですよね?
それなら簡単な話なので(多分)kan_emonさん用になるであろうページを作りました。
http://zeroyui.jp/latlng.php
検索後でTOPにすると別のページになるのでご注意ください。
よかったら文頭の疑問に答えていただけるとスッキリします!

参考URL:http://zeroyui.jp/latlng.php

Q緯度・経度からの角度計算

A船の所在位置の緯度・経度と、B船の所在位置の緯度・経度がわかっている場合、A船からみると、B船は今自分のどの角度にあるのか?このような各緯度・経度より2地点間の角度を計算する計算公式はないでしょうか?
もしわかる方があれば、是非僕に教えてくださいよう、よろしくお願いします。(今すごく悩んでいます、もしできるなら、EXCELに取り込みたいです)
もしヒントになるサイトのURLがあれば、それもかまいません。
どうぞよろしくお願いします。教えて下さい。

Aベストアンサー

他の方が回答されていますが、補足です。

1,平面航法
Dep=Distxsin co    D.l=Distxcos co
tan co=Dep/D.l

 Dep・・・二点間の経度差  D.l・・・緯度差(南北方向の距離)  
 Dist・ ・二点間の距離
 co・・・・二点間の針路(コース:方角)

2,中分緯度航法
 DL=Depxsec ml  tan co=Dep/DL
 Dist=Depxcosec co=D・lxsec co

 DL・・・二点間の東西方向の距離
 ml・・・・二点間の中間緯度
 sec・・・・1/cos        cosec・・・1/sin

3,大圏航法、漸長航法、距等圏航法は省略します。

4,上記1,2で求めた針路で進んでも、東西南北以外の針路を進めば決して目的地へは、到達しません。 

Q経度・緯度の分かるWeb地図を知っていますか?

経度・緯度と地名が分かりやすいWeb地図を知っていますか? (特に中国の)

経度・緯度がわかれば地名を調べられるし、
地名が分かれば経度・緯度を調べられますよね。

しかし、google maps ,google earthの場合、
表示されている場所の経度・緯度は判明するのですが、
その場所がどこなのかが分らない場合があります。
( つまり、経度・緯度は分かっても地名が分らない。 )
例 : 場所は中国の蘭州ですが都市の地名も表示されていません
http://maps.google.co.jp/maps?f=q&hl=ja&q=&ie=UTF8&om=1&ll=35.978006,104.348145&spn=4.231472,7.305908&z=7

そこで皆さんにお尋ねしたいのですが、
地名の詳しいWeb地図を知っていますか? (特に中国の)
できれば経度・緯度と地名が分かりやすいWeb地図を探しています。

地図で都市の経度・緯度を調べて、
google earthでその都市の衛星写真を見てみたいのです。

よろしくお願いします。

経度・緯度と地名が分かりやすいWeb地図を知っていますか? (特に中国の)

経度・緯度がわかれば地名を調べられるし、
地名が分かれば経度・緯度を調べられますよね。

しかし、google maps ,google earthの場合、
表示されている場所の経度・緯度は判明するのですが、
その場所がどこなのかが分らない場合があります。
( つまり、経度・緯度は分かっても地名が分らない。 )
例 : 場所は中国の蘭州ですが都市の地名も表示されていません
http://maps.google.co.jp/maps?f=q&hl=ja&q=&ie=UTF8&om=1&ll=...続きを読む

Aベストアンサー

 こんにちは。
 マイクロソフトの Live Search は、どうですか。中国の地図は、Google より詳しいです。ただし、英語ですが。
 位置は、マウスの右クリックで中央に表示した後に、「共有」-「固定リンクの表示」で確認できます。
 航空写真の精度は、Google とは、比較していませんので、ご自分で確認してください。

http://maps.live.com/

参考URL:http://maps.live.com/

Q2地点の緯度と経度で方向がわかりますか?

2地点の緯度と経度がわかっていて、基点となるところからもう1地点がどのような方角にあるか導き出すことができるのでしょうか?(例えば、北北東の方向とか)。また現在自分が住んでいるところの緯度と経度はどのようにしたらわかるのでしょうか。教えてください!

Aベストアンサー

やっかいなのは、地球が完全な球ではないことです。
国土地理院のサイトに、扁平率まで考慮した計算方法があります。
参考にしてみて下さい。

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

QGoogleMapAPI - デフォルト表示したマーカーから緯度経度を取得できない

最近googleMapを利用しデータベースと連携して
コミュニケーションツールを作れないかとあれこれ
本やネットで調べた知識でがんばっているのですが、
行き詰まってしまったのでどなたかお知恵をお貸し下さい。

◇前提
・googleMapのページアクセス時に
 DBに登録済みのマーカー情報(緯度・経度・場所名称)を基に
 複数のマーカーを表示する
 ※DBとのデータ中継はPHPを使用。ここでは省略。

◇問題点
・表示された複数のマーカーのうちどれかをクリックしたとき
 そのマーカーに付随するデータをフォーム上に表示したいが、
 DBへの問い合わせに必要なクリックしたマーカーの緯度経度が
 取得できない。

以下抜粋
-------------------------------------------------
// 登録済みマーカーをデフォルト表示
GDownloadUrl("load.php", function(doc, stat){
var load = doc.parseJSON();
for(var i=0; i<load.data.length; i++){
var point = new GLatLng(load.data[i].lat, load.data[i].lng);
var marker = new GMarker(point);
map.addOverlay(marker);
// クリックしたマーカーに該当する情報を表示
GEvent.addListener(marker, "click", function(){
//*** ここで緯度経度を取得 ****
}
}
});
-------------------------------------------------

http://oshiete1.goo.ne.jp/qa2559818.html
上記ページの質問に対する回答の方法も試しましたが、
エラーが出てしまい解決できませんでした。
プログラム素人な上、不慣れな分野にて行き詰まってます。
どうかお助け下さい。

最近googleMapを利用しデータベースと連携して
コミュニケーションツールを作れないかとあれこれ
本やネットで調べた知識でがんばっているのですが、
行き詰まってしまったのでどなたかお知恵をお貸し下さい。

◇前提
・googleMapのページアクセス時に
 DBに登録済みのマーカー情報(緯度・経度・場所名称)を基に
 複数のマーカーを表示する
 ※DBとのデータ中継はPHPを使用。ここでは省略。

◇問題点
・表示された複数のマーカーのうちどれかをクリックしたとき
 そのマーカーに付随する...続きを読む

Aベストアンサー

こんにちは

marker.getPoint()
とすればマーカーのさしてる緯度経度を取得できるはずですがどうでしょうか?

あと、「ここで緯度経度を取得」の部分で、どのように試してみてだめだったか
なども書いておいたほうが回答がつきやすいと思います。

Q緯度・経度の計算方法

地図中に緯度・経度の記入をしたいのですが、計算方法を教えて下さい。
緯度が34°5'と34°33333333'の位置とその2点間の距離が18497550mmであり、
経度が133°と133°25'の位置とその2点間の距離が22872700mmであることがわかっています。
このことから、緯度が34°4'の位置と経度が133°30'の位置を求める式を教えて下さい。

Aベストアンサー

> 緯度が34°5'と34°33333333'の位置とその2点間の距離が18497550mm

見た目からしてなんかおかしいのですが、「60進法の 度・分・秒 (34°30′00″)」と「度だけの10進法の小数表記(34.5°)」を混同してませんか。

緯度方向にリアルスケールで 18497.550m なら、一般的概算で1海里 1852m(=緯度1分)ですから およそ 9分59.3秒 (9.988分)。
ということは与えられている情報はキリのいいところだとすると正しくは、緯度 34°30′00″~ 34°20′00″ (34.50000000度 ~ 34.33333333度)のことではありませんか?

> 経度が133°と133°25'の位置とその2点間の距離が22872700mm

こちらも、同様に間違えているのなら 133°00′00″~ 133°15′00″ のことではないですか?

というわけで、与えられている情報では"当該緯度(不明)"において東経方向に 15′あたり 22872.700m であるのだから、1′あたり何メートルかはわかりますよね

※念のため:地球は丸いので緯度が違うと 当然経度1°あたりの距離は異なりますよ。なので緯度何度での情報なのかがないと誤差が生じます。おそらく近傍でしょうから実用精度上問題ないレベルだと思いますが。"ミリメートル単位"で考えるならブレます。

> 緯度が34°4'の位置と経度が133°30'の位置

これもおそらく 北緯34°24′00″ 東経133°18′00″ のことだとは思いますが、もしそのまま北緯34°04′00″ 東経133°30′00″ のことなら全然違う位置になってしまいますね。

なので、求めるべき位置が正しく 何度何分何秒 (もしくは何.何度) なのか再確認したうえで、緯度経度両方のわかっているポイントとの緯度差経度差からそれぞれの距離を出してあとは地図の縮尺を掛けてプロットしてください。

60進法の計算(時間と同じです)と縮尺の単純なかけ算なので、緯度経度の正しい考え方の提示をすれば式全体を提示するほどのものでもないと思いますがいかがでしょうか。(このサイトの趣旨から外れないよう、丸投げの丸答えになるのを防ぐ意味もあります)

> 緯度が34°5'と34°33333333'の位置とその2点間の距離が18497550mm

見た目からしてなんかおかしいのですが、「60進法の 度・分・秒 (34°30′00″)」と「度だけの10進法の小数表記(34.5°)」を混同してませんか。

緯度方向にリアルスケールで 18497.550m なら、一般的概算で1海里 1852m(=緯度1分)ですから およそ 9分59.3秒 (9.988分)。
ということは与えられている情報はキリのいいところだとすると正しくは、緯度 34°30′00″~ 34°20′00″ (34.50000000度 ~ 34.33333333度)のことではありませんか?

> 経...続きを読む


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

人気Q&Aランキング