Appearance
坐标系
国内坐标系的注册与数学内核。概念与用法见 指南 · 国内坐标系,本页为 API 速查。
registerProjections
向 OpenLayers 全局投影注册表注册 GCJ:02 / BD:09 / EPSG:3395 及其与 4326/3857 的互转。幂等,重复调用为 no-op。new GMap() 构造时自动调用;仅当需要在创建地图前做坐标转换时才手动调用。
ts
import { registerProjections } from 'geoverse';
import { transform } from 'ol/proj';
registerProjections();
const gcj = transform([118.18, 24.49], 'EPSG:4326', 'GCJ:02');签名:registerProjections(): void
投影代号常量
| 常量 | 值 | 说明 |
|---|---|---|
GCJ02_CODE | 'GCJ:02' | 高德加偏墨卡托 |
BD09_CODE | 'BD:09' | 百度加偏墨卡托 |
EPSG3395_CODE | 'EPSG:3395' | WGS-84 墨卡托(海图) |
坐标数学内核(纯函数)
不依赖地图、无副作用、可 tree-shake。
gcj02 / bd09
WGS-84 经纬度 ↔ 加偏经纬度互转:
ts
import { gcj02, bd09 } from 'geoverse';
gcj02.fromWGS84([118.18, 24.49]); // WGS-84 → GCJ-02 经纬度
gcj02.toWGS84([118.19, 24.49]); // GCJ-02 → WGS-84 经纬度
bd09.fromWGS84([118.18, 24.49]); // WGS-84 → BD-09 经纬度
bd09.toWGS84([118.19, 24.49]); // BD-09 → WGS-84 经纬度每个方法签名:(input: number[], output?: number[], dimension?: number) => number[],支持扁平坐标数组批量转换(dimension 指定每点维度,附加维度原样保留)。
sphericalMercator / baiduMercator
墨卡托正反算(经纬度 ↔ 墨卡托):
ts
sphericalMercator.forward([180, 0]); // → ~[20037508.34, 0]
sphericalMercator.inverse([20037508.34, 0]);
baiduMercator.forward([118.18, 24.49]);
baiduMercator.inverse([...]);各含 forward / inverse,签名同上(批量扁平数组)。
outOfChina
ts
outOfChina(lon: number, lat: number): boolean点是否在国境粗框之外(在框外时 GCJ-02/BD-09 不加偏,与 WGS-84 一致)。