网站开发常用的前端框架,百度教育智能小程序,眼镜 商城 网站建设,app外包公司推荐一、地理坐标系和投影坐标系的关系
地理坐标系 (Geographic Coordinate System, GCS)
定义#xff1a;地理坐标系是一个基于三维地球表面的坐标系统。它使用经度和纬度来表示地点的位置。 特点#xff1a; 使用经纬度来定义位置。 基于特定的地球参考椭球体。 适用于全球范…一、地理坐标系和投影坐标系的关系
地理坐标系 (Geographic Coordinate System, GCS)
定义地理坐标系是一个基于三维地球表面的坐标系统。它使用经度和纬度来表示地点的位置。 特点 使用经纬度来定义位置。 基于特定的地球参考椭球体。 适用于全球范围的数据表示。 主要问题由于地球是一个椭球体直接使用经纬度坐标计算距离、面积或方向会产生误差。
投影坐标系 (Projected Coordinate System, PCS)
定义投影坐标系是一个基于二维平面的坐标系统。它是通过将地球或其部分投影到一个平面上来得到的。 特点 使用X和Y坐标在平面上来定义位置。 能够直接计算距离、面积和方向因为它是在二维平面上。 所有的投影都会有某种形式的扭曲无法完美地将地球的三维表面表示在二维平面上。 主要用途适用于地图制作和本地/区域空间分析。
它们之间的关系
投影是一个过程通过它地理坐标系GCS中的数据经纬度可以转换为投影坐标系PCS中的数据X, Y坐标。反之亦然。 由于地球是一个椭球体或近似为一个凸形的物体我们不能直接将其完美地展平到二维平面上。因此当我们进行投影时必然会引入一些扭曲。根据具体的投影方法这种扭曲可能影响到面积、形状、距离或方向也有属性不发生改变故有等角、等积、任意投影。 在 GIS 中经常需要在这两种坐标系统之间进行转换当我们将地理空间数据从一个坐标系转换到另一个坐标系时我们通常说是在执行坐标转换或坐标投影。。
二、中国常用坐标系及EPSG代码
1CGCS2000 地理坐标系:
EPSG:4490
2CGCS2000 3度带 Gauss-Kruger 投影:
东经 75° - EPSG:4501 东经 78° - EPSG:4502 …依此类推每隔3°一个投影带直到东经 132° - EPSG:4543
3CGCS2000 6度带 Gauss-Kruger 投影:
东经 75° - EPSG:4544 东经 81° - EPSG:4545 …依此类推每隔6°一个投影带
4北京1954 地理坐标系:
EPSG:4214
5北京1954 3度带 Gauss-Kruger 投影:
东经 75° - EPSG:2421 东经 78° - EPSG:2422 …依此类推每隔3°一个投影带
6WGS 84 地理坐标系:
EPSG:4326 这个是一个全球通用的坐标系通常被 GPS 和许多国际数据集所采用。
7WGS 84 / Pseudo-Mercator:
EPSG:3857 这个是 Web Mercator 投影主要被 Web 地图如 Google Maps, Bing Maps使用。
8Xian 1980 地理坐标系:
EPSG:4610 用于某些特定区域的数据。
其它坐标系代码查询
三、坐标转换
这里使用epsg网站在线转换举例说明 坐标由WGS 84 地理坐标系转换为WGS 84 / 伪墨卡托投影坐标系
四、cesium中的坐标系知识及坐标转换
1坐标系1.1屏幕坐标系屏幕坐标系即二维笛卡尔坐标系Cesium中使用Cartesian2来描述原点在屏幕左上角x轴向右y轴向下单位为像素。1.2笛卡尔空间直角坐标系笛卡尔空间直角坐标系即三维笛卡尔坐标系Cesium中使用Cartesian3来描述原点在地球中心x轴向东y轴向北z轴向上单位为米。1.3WGS84地理坐标系WGS84地理坐标系即经纬度坐标系在表示经纬度时有度数制和弧度制两种Cesium中使用Cartographic来描述弧度制的WGS84坐标系原点在地球中心x轴向东y轴向北z轴向上。1.4WebGL坐标系WebGL坐标系即WebGL空间直角坐标系Cesium中使用Cartesian4来描述原点在地球中心x轴向东y轴向北z轴向上w轴向外单位为米。2坐标转换2.1角度与弧度互转角度转弧度let radiansCesium.Math.toRadians(degrees)弧度转角度let degreesCesium.Math.toDegrees(radians)2.2WGS84经纬度与笛卡尔坐标Cartesian3互转WGS84转Cartesian3(1) 直接通过经纬度转换(1).1 let cartesian3Cesium.Cartesian3.fromDegrees(longitude,latitude,height); 格式[113.21, 25.61, 100.0]高度默认为0可以不写(1).2 let cartesian3s Cesium.Cartesian3.fromDegreesArray(coordinates); 格式[113.21, 25.61, 113.54, 25.24]不带高度格式的数组(1).3 let cartesian3s Cesium.Cartesian3.fromDegreesArrayHeights(coordinates); 格式[113.21, 25.61, 100.0, 113.54, 25.24, 200.0]带高度格式的数组弧度制也类似使用Cesium.Cartesian3.fromRadians, Cesium.Cartesian3.fromRadiansArray, Cesium.Cartesian3.fromRadiansArrayHeights(2) 使用椭球体转换let positionCesium.Cartographic.fromDegrees(longitude,latitude,height);(2).1 let cartesian3Cesium.Ellipsoid.WGS84.cartographicToCartesian(position); 单个坐标(2).2 let cartesian3sCesium.Ellipsoid.WGS84.cartographicArrayToCartesianArray(positions); 坐标数组Cartesian3转WGS84(1) 直接转换let cartographicCesium.Cartographic.fromCartesian(cartesian3); 直接转换得到的是WGS84弧度制的经纬度坐标可将其再转换为角度制(2) 使用椭球体转换(2).1 let cartographicCesium.Ellipsoid.WGS84.cartesianToCartographic(cartesian3); 单个坐标(2).2 let cartographicsCesium.Ellipsoid.WGS84.cartesianArrayToCartographicArray(cartesian3s); 坐标数组2.3 屏幕坐标与笛卡尔坐标互转屏幕坐标转笛卡尔坐标Cartesian2转Cartesian3(1) 屏幕坐标转椭球面笛卡尔坐标不包含地形、模型等的坐标let cartesian3viewer.scene.camera.pickEllipsoid(cartesian2);(2) 屏幕坐标转场景坐标包含地形和模型等的场景坐标let cartesian3viewer.scene.pickPosition(cartesian2);(3) 屏幕坐标转地表笛卡尔空间坐标通过相机与屏幕点位连线来求取坐标let rayviewer.camera.getPickRay(cartesian2);let cartesian3globe.pick(ray,viewer.scene);笛卡尔坐标转屏幕坐标Cartesian3转Cartesian2let cartesian2Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene,cartesian3);