【CRS84 与 EPSG:4326 全对比(完整技术规范)】

CRS84 与 EPSG:4326 全对比(完整技术规范)

一、核心关系图解

坐标顺序不同
坐标顺序不同
OGC标准
传统GIS
Web应用
卫星导航
WGS84 大地测量系统
CRS84
EPSG4326
GeoJSON规范
Shapefile格式
地图API
GPS设备

二、技术规范对比表

对比维度CRS84 (OGC)EPSG:4326 (EPSG)
标准制定机构开放地理空间联盟 (OGC)欧洲石油测绘组 (EPSG)
规范文档OGC 12-063r5EPSG Dataset v10.023
坐标顺序经度, 纬度 (X, Y) → [113.875397, 22.571915]纬度, 经度 (Y, X) → [22.571915, 113.875397]
URN 标识符urn:ogc:def:crs:OGC:1.3:CRS84EPSG:4326
高程支持可扩展为 [X, Y, Z]需使用 EPSG:4979
精度要求小数点后 6 位(约 0.11 米)未明确,通常同 WGS84
适用场景GeoJSON、Web 地图服务Shapefile、传统 GIS 系统
数学基准WGS84 椭球体同左
坐标范围验证经度: [-180, 180]
纬度: [-90, 90]
同左

三、GeoJSON CRS 规范详解

1. 合法定义结构
{
  "type": "Feature",
  "crs": {
    "type": "name", // 固定值
    "properties": {
      "name": "urn:ogc:def:crs:OGC:1.3:CRS84" // 唯一合法值
    }
  },
  "geometry": {
    "type": "Point",
    "coordinates": [113.875397, 22.571915] // 经度在前
  }
}
2. 违规案例分析
错误类型错误示例后果
使用 EPSG 编码"name": "EPSG:4326"地图显示偏移至错误位置(如深圳坐标显示在非洲)
坐标顺序颠倒"coordinates": [22.571915, 113.875397]实际定位到西经 113°, 北纬 22°(大西洋海域)
非法 CRS 类型"type": "EPSG"解析器拒绝加载

四、数学等价性证明

1. 基准参数一致性
const WGS84_PARAMS = {
  a: 6378137.0, // 长半轴 (米)
  f: 1 / 298.257223563, // 扁率
  b: 6356752.3142, // 短半轴 (米)
};
// CRS84与EPSG:4326共享完全相同的椭球参数
2. 坐标转换公式
// 坐标系互换算法
const swapCoordinates = (coord: number[]) => [coord[1], coord[0]];

// 深圳宝安机场坐标转换验证
const crs84Point = [113.875397, 22.571915];
const epsg4326Point = swapCoordinates(crs84Point);

console.log("CRS84:", crs84Point); // [113.875397, 22.571915]
console.log("EPSG4326:", epsg4326Point); // [22.571915, 113.875397]

五、工程实践检测方案

1. 自动坐标顺序检测
function detectCoordinateOrder(coords: number[][]): string {
  const sample = coords[0];

  // 经度值合理性检测
  const isLngFirst = sample.some(
    (coord) => Math.abs(coord[0]) > 90 && Math.abs(coord[1]) <= 90
  );

  return isLngFirst ? "CRS84" : "EPSG:4326";
}

// 测试用例
const testCoords = [
  [113.875397, 22.571915], // 正确CRS84顺序
  [22.571915, 113.875397], // 错误顺序
];
console.log(detectCoordinateOrder([testCoords[0]])); // 输出: CRS84
console.log(detectCoordinateOrder([testCoords[1]])); // 输出: EPSG:4326
2. 坐标系转换验证
// 使用proj4验证转换正确性
proj4.defs("CRS84", proj4.defs("EPSG:4326").proj);

const crs84Point = [113.875397, 22.571915];
const epsg4547 = proj4("CRS84", "EPSG:4547", crs84Point);

console.log("深圳地方坐标系:", epsg4547);
// 正确输出: [480538.765, 2502742.039](宝安机场合理坐标)

最终技术结论

  1. CRS84 与 EPSG:4326 是 同一基准的不同坐标顺序标准
  2. GeoJSON 强制使用 CRS84 坐标系定义
  3. 坐标顺序错误会导致 千米级位置偏差
  4. 工程中必须进行 显式坐标系声明坐标顺序验证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gazer_S

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值