High-performance ECEF Coordinate Conversion Library (Based on Simplified Spherical Model)
Float64Array 转换接口。
bash
npm install ecef
`
或者
`bash
yarn add ecef
`
$3
你可以通过
使用方法
$3
#### 引入模块
`javascript
// ESM
import { fromDegree, toDegree, distance } from 'ecef';
// CJS
const { fromDegree, toDegree, distance } = require('ecef');
`
#### 示例代码
将大地坐标(JWH)转换为 ECEF 坐标(XYZ):
`javascript
const jwh = { longitude: 120, latitude: 30, height: 0 };
const xyz = fromDegree(jwh);
console.log(xyz); // { x, y, z }
`
将 ECEF 坐标(XYZ)转换为大地坐标(JWH):
`javascript
const xyz = { x: 1000000, y: 2000000, z: 3000000 };
const jwh = toDegree(xyz);
console.log(jwh); // { longitude, latitude, height }
`
计算两个 ECEF 坐标之间的直线距离:
`javascript
const pointA = { x: 1000000, y: 2000000, z: 3000000 };
const pointB = { x: 1500000, y: 2500000, z: 3500000 };
const dist = distance(pointA, pointB);
console.log(dist); // 距离(米)
`
$3
在浏览器环境中,可以通过全局变量 ecef 使用所有导出的方法:
`html
`
API 文档
$3
- fromDegree(jwh: JWH, radius?: number): XYZ
将大地坐标(JWH)转换为 ECEF 坐标(XYZ)。
参数:
- jwh: 大地坐标对象 { longitude, latitude, height }
- radius: 球体半径,默认为 SphereRadius.WGS84_SEMIMAJOR
- toDegree(xyz: XYZ, radius?: number): JWH
将 ECEF 坐标(XYZ)转换为大地坐标(JWH)。
参数:
- xyz: ECEF 坐标对象 { x, y, z }
- radius: 球体半径,默认为 SphereRadius.WGS84_SEMIMAJOR
$3
- fromDegrees(jwhArray: Float64Array, radius?: number): Float64Array
批量将大地坐标数组转换为 ECEF 坐标数组。
输入格式:[longitude0, latitude0, height0, ...]
输出格式:[x0, y0, z0, ...]
- toDegrees(xyzArray: Float64Array, radius?: number): Float64Array
批量将 ECEF 坐标数组转换为大地坐标数组。
输入格式:[x0, y0, z0, ...]
输出格式:[longitude0, latitude0, height0, ...]
$3
- distance(a: XYZ, b: XYZ): number
计算两个 ECEF 坐标之间的直线距离。
- [center(points: XYZ[]): XYZ](file://d:\jvy\JVY\100个人\code\gitee\ecef\src\index.ts#L317-L332)
计算多个 ECEF 坐标的中心点。
- distanceArray(a: Float64Array, b: Float64Array): number
计算两个 Float64Array 存储的 ECEF 坐标之间的距离。
$3
- isJWH(value: unknown): boolean
检查是否为有效的大地坐标对象。
- isXYZ(value: unknown): boolean`