UNPKG

cgcs2000

Version:

China Geodetic Coordinate System 2000 (CGCS2000)

115 lines (112 loc) 3.56 kB
import * as wkid from 'wkid'; export { CGCS2000_GEOGRAPHIC, CGCS2000_GK_3DEG_NO_ZONE, CGCS2000_GK_3DEG_WITH_ZONE, CGCS2000_GK_6DEG_NO_ZONE, CGCS2000_GK_6DEG_WITH_ZONE, findCoordinateSystemByName, findCoordinateSystemByWkid } from 'wkid'; /** * 椭球体参数接口 */ interface Ellipsoid { name: string; semiMajorAxis: number; flattening: number; } /** * 坐标系定义接口 */ interface CoordinateSystem { wkid: number; name: string; proj4: string; ogcWkt: string; esriWkt: string; json: any; } /** * 坐标点类型 */ type CoordinatePoint = [number, number]; /** * CGCS2000 中国大地坐标系类 */ declare class CGCS2000 { private static readonly WKID_RANGE; /** * CGCS2000 坐标系的 WKID */ static readonly WKID = 4490; /** * CGCS2000 地理坐标系定义 */ static readonly GEOGRAPHIC: wkid.CoordinateSystemDefinition; /** * 获取 CGCS2000 椭球体参数 * @returns 椭球体参数 */ static getEllipsoid(): Ellipsoid; /** * 根据 WKID 获取坐标系定义 * @param wkid 坐标系 WKID * @returns 坐标系定义或 undefined */ static getCoordinateSystem(wkid: number): CoordinateSystem | undefined; /** * 根据名称获取坐标系定义 * @param name 坐标系名称 * @returns 坐标系定义或 undefined */ static getCoordinateSystemByName(name: string): CoordinateSystem | undefined; /** * 验证 WKID 是否为 CGCS2000 系列坐标系 * @param wkid 坐标系 WKID * @returns 是否为 CGCS2000 系列坐标系 */ static isCGCS2000(wkid: number): boolean; /** * 坐标转换 * @param sourceWkid 源坐标系 WKID * @param targetWkid 目标坐标系 WKID * @param coordinates 坐标 [x, y] 或 [lon, lat] * @returns 转换后的坐标 * @throws 当坐标系不支持时抛出错误 */ static transform(sourceWkid: number, targetWkid: number, coordinates: CoordinatePoint): CoordinatePoint; /** * 批量坐标转换 * @param sourceWkid 源坐标系 WKID * @param targetWkid 目标坐标系 WKID * @param coordinates 坐标数组 * @returns 转换后的坐标数组 */ static transformBatch(sourceWkid: number, targetWkid: number, coordinates: CoordinatePoint[]): CoordinatePoint[]; /** * 获取所有 3 度带无带号坐标系定义 * @returns 3 度带无带号坐标系数组 */ static getGk3DegNoZone(): CoordinateSystem[]; /** * 获取所有 3 度带带带号坐标系定义 * @returns 3 度带带带号坐标系数组 */ static getGk3DegWithZone(): CoordinateSystem[]; /** * 获取所有 6 度带无带号坐标系定义 * @returns 6 度带无带号坐标系数组 */ static getGk6DegNoZone(): CoordinateSystem[]; /** * 获取所有 6 度带带带号坐标系定义 * @returns 6 度带带带号坐标系数组 */ static getGk6DegWithZone(): CoordinateSystem[]; /** * 根据中央子午线计算 3 度带带号 * @param centralMeridian 中央子午线 * @returns 带号 */ static calculate3DegZoneNumber(centralMeridian: number): number; /** * 根据中央子午线计算 6 度带带号 * @param centralMeridian 中央子午线 * @returns 带号 */ static calculate6DegZoneNumber(centralMeridian: number): number; } export { CGCS2000, CoordinatePoint, CoordinateSystem, Ellipsoid, CGCS2000 as default };