cgcs2000
Version:
China Geodetic Coordinate System 2000 (CGCS2000)
115 lines (112 loc) • 3.56 kB
TypeScript
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 };