跳至内容

球面数学

球面几何的底层实用程序。

geoArea(object)

源代码 · 返回指定 GeoJSON object 的球面面积,以 球面度 为单位。这是 path.area 的球面等效项。

geoBounds(object)

源代码 · 返回指定 GeoJSON object球面边界框。边界框由一个二维数组表示:[[left, bottom], [right, top]],其中 left 是最小经度,bottom 是最小纬度,right 是最大经度,top 是最大纬度。所有坐标均以度为单位。(请注意,在投影的平面坐标中,最小纬度通常是最大 y 值,而最大纬度通常是最小 y 值。)这是 path.bounds 的球面等效项。

geoCentroid(object)

源代码 · 返回指定 GeoJSON object 的球面质心。这是 path.centroid 的球面等效项。

geoDistance(a, b)

源代码 · 返回两点 ab 之间的弧线距离,以 弧度 为单位。每个点必须指定为一个包含两个元素的数组 [longitude, latitude],以度为单位。这是给定包含两个点的线字符串的 path.measure 的球面等效项。

geoLength(object)

源代码 · 返回指定 GeoJSON object 的弧线长度,以 弧度 为单位。对于多边形,返回外环的周长加上任何内环的周长。这是 path.measure 的球面等效项。

geoInterpolate(a, b)

源代码 · 返回给定两点 ab 的插值函数。每个点必须指定为一个包含两个元素的数组 [longitude, latitude],以度为单位。返回的插值函数接受一个参数 t,其中 t 是一个介于 0 到 1 之间的数字;值为 0 返回点 a,而值为 1 返回点 b。中间值沿着穿过 ab 的弧线从 a 插值到 b。如果 ab 是对跖点,则选择任意一条弧线。

geoContains(object, point)

源代码 · 当且仅当指定的 GeoJSON object 包含指定的 point 时返回 true,或者当 object 不包含 point 时返回 false。该点必须指定为一个包含两个元素的数组 [longitude, latitude],以度为单位。对于点和多点几何图形,使用精确测试;对于球体,始终返回 true;对于其他几何图形,应用一个 epsilon 阈值。

geoRotation(angles)

源代码 · 返回给定 angles旋转函数,该函数必须是一个包含两个或三个数字的数组 [lambda, phi, gamma],以度为单位指定绕 每个球面轴 的旋转角度。(这些对应于 偏航、俯仰和滚转。)如果旋转角度 gamma 被省略,则默认值为 0。另请参阅 projection.rotate

rotation(point)

源代码 · 返回一个包含两个元素的新数组 [longitude, latitude],以度为单位表示给定 point 的旋转点。该点必须指定为一个包含两个元素的数组 [longitude, latitude],以度为单位。

rotation.invert(point)

源代码 · 返回一个包含两个元素的新数组 [longitude, latitude],以度为单位表示给定旋转 point 的点;这是 rotation 的反函数。该点必须指定为一个包含两个元素的数组 [longitude, latitude],以度为单位。