# 渲染坐标系管理
渲染坐标系管理器(CRSManager)用于配置渲染坐标系并对外提供坐标转换接口,可以通过引擎(Engine)的crsManager属性方位渲染坐标系管理器。
# 属性
🌏 coordinateSystem 获取&设置渲染坐标系。
// 获取当前渲染坐标系
const coordinateSystem = engine.crsManager.coordinateSystem;
2
设置空间直角渲染坐标系
import { CartesianCoordinateSystem } from '@tx3d/core';
// 设置空间直角渲染坐标系
engine.crsManager.coordinateSystem = new CartesianCoordinateSystem();
2
3
4
设置CAD渲染坐标系
import { CADCoordinateSystem } from '@tx3d/core';
// 设置CAD渲染坐标系
engine.crsManager.coordinateSystem = new CADCoordinateSystem( [ 537346.5415420881, 4441092.000029248, 558622.5415859604, 4426908.000000001 ] );
2
3
4
提示
创建CAD渲染坐标系时需要指定CAD图边界范围!
设置墨卡托渲染坐标系
import { MercatorCoordinateSystem } from '@tx3d/core';
// 设置墨卡托渲染坐标系
engine.crsManager.coordinateSystem = new MercatorCoordinateSystem();
2
3
4
提示
坐标转换之前需要先设置地测坐标变换参数
// 设置地测坐标系为“北京54”
coordinateSystem.setGeodeticOptions( 'BEIJING54' );
2
注意
- 如果不指定渲染坐标系,默认会使用空间直角坐标系。
- 渲染坐标系不允许设置为null或undefined!
🌏 relativeCenter 获取&设置相对中心点。
// 设置相对中心点(标准GIS坐标系坐标)
engine.crsManager.relativeCenter = [ 12267093.365897719, 100.0, -4816072.715104974 ];
2
注意
相对中心点通常只需要设置一次,除非GIS原始数据坐标系或渲染坐标系发生改变。
// 获取相对中心点
const relativeCenter = engine.crsManager.relativeCenter;
2
# 接口
🌏 isRelativeCenterValid 判断当前相对中心点是否有效(即,判断中心点是否已设置)。
// 判断相对中心点是否有效
if ( !engine.crsManager.isRelativeCenterValid() ) {
// 相对中心点未设置,需要设置相对中心点
engine.crsManager.relativeCenter = [ 12267093.365897719, 100.0, -4816072.715104974 ];
}
2
3
4
5
6
7
🌏 resetRelativeCenter 重置当前相对中心点(即,将相对中心点设置为无效)。
// 重置当前相对中心点
engine.crsManager.resetRelativeCenter();
2
🌏 fromGeodeticToGIS 地测坐标转标准GIS坐标,左手坐标系->右手坐标系。
// 地测(巷道、工作面、地层、钻孔等数据)坐标转标准GIS坐标
const gis = engine.crsManager.fromGeodeticToGIS( 12267145.673681745, 4816017.480262117, 0.0 );
2
🌏 fromGISToGeodetic 标准GIS坐标转地测坐标,右手坐标系->左手坐标系。
// 标准GIS坐标转地测坐标
const geodetic = engine.crsManager.fromGISToGeodetic( 12267145.673681745, 0.0, -4816017.480262117 );
2
🌏 fromGeographicToGIS 地理坐标(经度、纬度、海拔高度)转标准GIS坐标。
// 地理坐标转标准GIS坐标
const gis = engine.crsManager.fromGeographicToGIS( 110.20345733675236, 39.65668117021778, 10.0 );
2
🌏 fromGISToGeographic 标准GIS坐标转地理坐标(经度、纬度、海拔高度)。
// 标准GIS坐标转地理坐标
const geographic = engine.crsManager.fromGISToGeographic( 100.0, 0.0, 500.0 );
2
🌏 fromGISToWorld 标准GIS坐标转世界坐标,右手坐标系->右手坐标系。
// 标准GIS坐标转世界坐标
const world = engine.crsManager.fromGISToWorld( 12267145.673681745, 0.0, -4816017.480262117 );
2
🌏 fromWorldToGIS 世界坐标转标准GIS坐标,右手坐标系->右手坐标系。
// 世界坐标转标准GIS坐标
const gis = engine.crsManager.fromWorldToGIS( 100.0, 0.0, 500.0 );
2
🌏 fromGeodeticToWorld 地测坐标转世界坐标,左手坐标系->右手坐标系。
// 地测(巷道、工作面、地层、钻孔等数据)坐标转世界坐标
const world = engine.crsManager.fromGeodeticToWorld( 37431100.40625, 4391638, 0.0 );
2
🌏 fromWorldToGeodetic 世界坐标转地测坐标,右手坐标系->左手坐标系。
// 世界坐标转地测坐标
const geodetic = engine.crsManager.fromWorldToGeodetic( 100.0, 0.0, 500.0 );
2
🌏 fromGeographicToWorld 地理坐标(经度、纬度,海拔高度)转世界坐标。
// 地理坐标转世界坐标
const world = engine.crsManager.fromGeographicToWorld( 110.20345733675236, 39.65668117021778, 10.0 );
2
🌏 fromWorldToGeographic 世界坐标转地理坐标(经度、纬度、海拔高度)。
// 世界坐标转地理坐标
const geographic = engine.crsManager.fromWorldToGeographic( 100.0, 0.0, 500.0 );
2