返回

为您的Cesium项目选择正确的坐标系

前端

坐标系的理解
在介绍Cesium坐标转换之前,我们先来了解一下坐标系,它是一种用来表示和地球表面位置的方法。坐标系有很多种,常见的有地理坐标系和投影坐标系。

地理坐标系
地理坐标系是以经度和纬度来表示位置的,它是地球表面位置的最基本表示方法。经度是东西方向的位置,纬度是南北方向的位置。地理坐标系的参考椭球体是WGS84,它是国际上通用的参考椭球体。

投影坐标系
投影坐标系是将地球表面投影到一个平面上形成的坐标系。投影坐标系有很多种,每种投影坐标系都有其不同的投影方式和投影参数。投影坐标系常见的应用有平面坐标系、高斯投影坐标系和墨卡托投影坐标系。

Cesium中的坐标系

Cesium中常见到的坐标类型有:

  • WGS84:WGS84 是一种地理坐标系,以经度和纬度表示位置。
  • WGS84 Web Mercator:WGS84 Web Mercator 是一种投影坐标系,它是 WGS84 的一种投影。WGS84 Web Mercator 广泛应用于 Web 地图中。
  • 投影坐标系:投影坐标系是将地球表面投影到一个平面上形成的坐标系。投影坐标系有很多种,每种投影坐标系都有其不同的投影方式和投影参数。

坐标转换

在Cesium 中,需要经常对不同坐标系的坐标进行转换。常见的坐标转换有以下几种:

  • WGS84 到 WGS84 Web Mercator
  • WGS84 Web Mercator 到 WGS84
  • 投影坐标系到 WGS84
  • WGS84 到 投影坐标系

以下提供详细步骤:

  • WGS84 到 WGS84 Web Mercator
// 将 WGS84 坐标转换成 WGS84 Web Mercator 坐标
var wgs84Point = new Cesium.Cartesian3(116.397446, 39.908721, 0);
var webMercatorPoint = Cesium.Cartographic.fromDegrees(wgs84Point.x, wgs84Point.y).project(new Cesium.Ellipsoid(6378137.0, 6356752.31424518));

// 显示转换后的坐标
console.log(webMercatorPoint);
  • WGS84 Web Mercator 到 WGS84
// 将 WGS84 Web Mercator 坐标转换成 WGS84 坐标
var webMercatorPoint = new Cesium.Cartesian3(1234567.89, 1234567.89, 0);
var wgs84Point = Cesium.Cartographic.fromCartesian(webMercatorPoint, new Cesium.Ellipsoid(6378137.0, 6356752.31424518)).toDegrees();

// 显示转换后的坐标
console.log(wgs84Point);
  • 投影坐标系到 WGS84
// 将投影坐标系坐标转换成 WGS84 坐标
var projectedPoint = new Cesium.Cartesian3(1234567.89, 1234567.89, 0);
var wgs84Point = Cesium.Cartographic.fromCartesian(projectedPoint, new Cesium.Ellipsoid(6378137.0, 6356752.31424518)).toDegrees();

// 显示转换后的坐标
console.log(wgs84Point);
  • WGS84 到 投影坐标系
// 将 WGS84 坐标转换成投影坐标系坐标
var wgs84Point = new Cesium.Cartesian3(116.397446, 39.908721, 0);
var projectedPoint = Cesium.Cartographic.fromDegrees(wgs84Point.x, wgs84Point.y).project(new Cesium.Ellipsoid(6378137.0, 6356752.31424518));

// 显示转换后的坐标
console.log(projectedPoint);

总结

本文介绍了 Cesium 中的坐标系,以及如何选择适合您项目的坐标系。重点介绍了不同坐标系之间的转换方法,包括 WGS84、WGS84 Web Mercator 和投影坐标系。希望本文能帮助您在 Cesium 项目中正确使用坐标系和进行坐标转换。