メインコンテンツ

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

distance

球面または楕円体上の点間の距離

説明

[arclen,az] = distance(lat1,lon1,lat2,lon2) は、座標 lat1lon1 の開始点から座標 lat2lon2 の終了点までの大円弧の弧長 arclen と方位角 az を計算します。この関数は、短い(短)大円弧を使用します。この構文は、球面の座標を参照し、arclenaz を度単位の球面距離として返します。

[arclen,az] = distance(pt1,pt2) は、座標 pt1 の開始点と座標 pt2 の終了点からの円弧の長さと方位を計算します。

この構文は、[arclen,az] = distance(pt1(:,1),pt1(:,2),pt2(:,1),pt2(:,2)) と等価です。

[arclen,az] = distance(lat1,lon1,lat2,lon2,ellipsoid) は座標の参照楕円体を指定します。この構文は、参照楕円体の長半径の単位で arclen を返します。

[arclen,az] = distance(pt1,pt2,ellipsoid) は座標の参照楕円体を指定します。この構文は、参照楕円体の長半径の単位で arclen を返します。

[arclen,az] = distance(___,units) は、前の構文の入力引数の任意の組み合わせに加えて、座標と方位の角度単位を指定します。

[arclen,az] = distance(method,___) (メソッドは "rh") は、等角線を使用して円弧の長さと方位角を計算します。method のデフォルトは "gc" で、大円弧 (球の場合) または測地線弧 (楕円体の場合) を使用して弧の長さと方位角を計算します。

すべて折りたたむ

ニューヨーク市とパリ間の球面距離を求めます。デフォルトでは、distance 関数は大円を計算し、その結果を度単位の球面距離として返します。

arclen1 = distance(40.71,-74.01,48.86,2.35)
arclen1 = 
52.4971

同じ 2 点間の等角線距離を求めます。

arclen2 = distance("rh",40.71,-74.01,48.86,2.35)
arclen2 = 
54.6718

distance 関数への入力として参照楕円体を指定すると、円弧の長さを直線距離として返すことができます。

長さの単位がメートルである 1984 年のWorld Geodetic System(WGS84) 参照楕円体を作成します。

wgs84 = wgs84Ellipsoid("m");

ニューヨーク市とパリ間の直線距離を求めます。distance 関数への入力として参照楕円体を指定すると、関数は楕円体の長半径の単位で線形距離を返します。

d = distance(40.71,-74.01,48.86,2.35,wgs84)
d = 
5.8531e+06

入力引数

すべて折りたたむ

開始点の緯度。スカラーまたは配列として指定します。

配列のサイズが同じである限り、スカラーと配列の組み合わせを使用して、lat1lon1lat2、および lon2 を指定できます。この関数は、配列入力のサイズに合わせてスカラー入力を拡張します。

データ型: single | double

開始点の経度。スカラーまたは配列として指定します。

配列のサイズが同じである限り、スカラーと配列の組み合わせを使用して、lat1lon1lat2、および lon2 を指定できます。この関数は、配列入力のサイズに合わせてスカラー入力を拡張します。

データ型: single | double

終了点の緯度。スカラーまたは配列として指定します。

配列のサイズが同じである限り、スカラーと配列の組み合わせを使用して、lat1lon1lat2、および lon2 を指定できます。この関数は、配列入力のサイズに合わせてスカラー入力を拡張します。

データ型: single | double

終点の経度。スカラーまたは配列として指定します。

配列のサイズが同じである限り、スカラーと配列の組み合わせを使用して、lat1lon1lat2、および lon2 を指定できます。この関数は、配列入力のサイズに合わせてスカラー入力を拡張します。

データ型: single | double

開始点の緯度と経度。[lat1 lon1] 形式の N 行 2 列の数値行列として指定されます。ここで、lat1lon1 は列ベクトルです。

データ型: single | double

終点の緯度と経度。[lat2 lon2] 形式の N 行 2 列の数値行列として指定されます。ここで、lat2lon2 は列ベクトルです。

データ型: single | double

参照楕円体。referenceSphere オブジェクト、referenceEllipsoid オブジェクト、oblateSpheroid オブジェクト、または [semimajor_axis eccentricity] 形式の 2 要素ベクトルとして指定されます。ここで、semimajor_axis は長半径の長さ、eccentricity は離心率です。値 semimajor_axiseccentricity はデータ型 double である必要があります。

角度の単位。次のいずれかのオプションとして指定します。

  • "degrees" — 度

  • "radians" — ラジアン

データ型: char | string

開始点と終了点を結ぶ曲線の種類。次のいずれかのオプションとして指定します。

  • "gc" — 球面の場合、点を結ぶ大円弧を使用して弧の長さと方位角を計算します。楕円体の場合は、点を結ぶ測地線を使用して弧の長さと方位角を計算します。

  • "rh" — 点を結ぶ等角線を使用して、円弧の長さと方位角を計算します。

等角線と大円の詳細については、「等角線と大円の比較」を参照してください。

データ型: char | string

出力引数

すべて折りたたむ

円弧の長さ。スカラーまたは配列として返されます。

  • lat1lon1lat2lon2 を使用して座標を指定する場合、この引数のサイズは、最大の緯度または経度入力のサイズと一致します。

  • pt1pt2 を使用して座標を指定する場合、この引数は長さが N のベクトルになります。

arclen の単位は、入力として参照楕円体を指定したかどうかによって異なります。

  • 入力として参照楕円体を指定しない場合、arclen は度単位の球面距離になります。units 入力引数を使用して、球面距離をラジアン単位で返すことができます。

  • 参照楕円体を入力として指定する場合、arclen は楕円体の長半径の単位での直線距離になります。

データ型: double

各ペアの 2 番目の点の最初の点に対する方位角が、スカラーまたは配列として返されます。方位角は、円弧が最初の点を含む子午線と交差する角度です。方位角は北から時計回りに測定されます。

  • lat1lon1lat2lon2 を使用して座標を指定する場合、この引数のサイズは、最大の緯度または経度入力のサイズと一致します。

  • pt1pt2 を使用して座標を指定する場合、この引数は長さが N のベクトルになります。

このtableは、基底方位と基底方位間のコンパス方向に関連付けられた方位角を示しています。

コンパスの方向方位角

0°または360°

北東

45°

90°

南東

135°

南側

180°

南西

225°

西側

270°

北西

315°

データ型: single | double

ヒント

deg2kmdeg2nm などの変換関数を使用して、球面距離を直線距離に変換できます。

アルゴリズム

測地方位角計算の精度は、点間の距離が長くなるにつれて低下します。さらに、点がほぼ対蹠的であったり赤道に近い場合、計算が失敗する可能性があります。

参照楕円体と、赤道に近くほぼ対蹠関係にある 2 つの点を指定すると、distance 関数は警告を発し、arclenaz の両方を NaN の値として返します。

バージョン履歴

R2006a より前に導入