コンテンツにスキップ

球面数学

球面幾何学のための低レベルユーティリティ。

geoArea(object)

ソース · 指定されたGeoJSON object の球面面積をステラジアンで返します。これはpath.areaの球面版です。

geoBounds(object)

ソース · 指定されたGeoJSON object球面バウンディングボックスを返します。バウンディングボックスは2次元配列[[left, bottom], [right, top]]で表されます。ここで、leftは最小経度、bottomは最小緯度、rightは最大経度、topは最大緯度です。すべての座標は度で指定されます。(投影された平面座標では、最小緯度は通常、最大y値であり、最大緯度は通常、最小y値であることに注意してください。)これはpath.boundsの球面版です。

geoCentroid(object)

ソース · 指定されたGeoJSON object の球面重心を返します。これはpath.centroidの球面版です。

geoDistance(a, b)

ソース · 2点abの間の大円距離をラジアンで返します。各点は、度単位の2要素配列[longitude, latitude]として指定する必要があります。これは、2点のLineStringが与えられた場合のpath.measureの球面版です。

geoLength(object)

ソース · 指定されたGeoJSON object の大円の長さをラジアンで返します。ポリゴンの場合、外側のリングの周囲長と内側のリングの周囲長を返します。これはpath.measureの球面版です。

geoInterpolate(a, b)

ソース · 2点abが与えられた場合、補間関数を返します。各点は、度単位の2要素配列[経度緯度]として指定する必要があります。返された補間関数は、単一の引数*t*を取ります。ここで、*t*は0から1の範囲の数値です。値0は点*a*を返し、値1は点*b*を返します。中間値は、*a*と*b*の両方を通る大円に沿って*a*から*b*に補間されます。 *a*と*b*が対蹠地である場合、任意の大円が選択されます。

geoContains(object, point)

ソース · 指定されたGeoJSON *object*が指定された*point*を含む場合にのみtrueを返し、*object*が*point*を含まない場合はfalseを返します。点は、度単位の2要素配列[ *経度*、*緯度*]として指定する必要があります。PointジオメトリとMultiPointジオメトリの場合、正確なテストが使用されます。Sphereの場合、常にtrueが返されます。他のジオメトリの場合、イプシロンしきい値が適用されます。

geoRotation(angles)

ソース · 指定された*angles*の回転関数を返します。*angles*は、各球面軸を中心とした回転角を度単位で指定する、2つまたは3つの要素の数値の配列[*lambda*、*phi*、*gamma*]である必要があります。(これらはヨー、ピッチ、ロールに対応します。)回転角*gamma*が省略された場合、デフォルトは0です。 * projection * .rotate も参照してください。

rotation(point)

ソース · 指定された*point*の回転点を表す、度単位の新しい配列[ *経度*、*緯度*]を返します。点は、度単位の2要素配列[ *経度*、*緯度*]として指定する必要があります。

rotation.invert(point)

ソース · 指定された回転*point*の点を表す、度単位の新しい配列[ *経度*、*緯度*]を返します。 * rotation * の逆です。点は、度単位の2要素配列[ *経度*、*緯度*]として指定する必要があります。