# 渲染坐标系管理

渲染坐标系管理器(CRSManager)用于配置渲染坐标系并对外提供坐标转换接口,可以通过引擎(Engine)的crsManager属性方位渲染坐标系管理器。

# 属性

🌏 coordinateSystem 获取&设置渲染坐标系。

// 获取当前渲染坐标系
const coordinateSystem = engine.crsManager.coordinateSystem;
1
2

设置空间直角渲染坐标系

import { CartesianCoordinateSystem } from '@tx3d/core';

// 设置空间直角渲染坐标系
engine.crsManager.coordinateSystem = new CartesianCoordinateSystem();
1
2
3
4

设置CAD渲染坐标系

import { CADCoordinateSystem } from '@tx3d/core';

// 设置CAD渲染坐标系
engine.crsManager.coordinateSystem = new CADCoordinateSystem( [ 537346.5415420881, 4441092.000029248, 558622.5415859604, 4426908.000000001 ] );
1
2
3
4

提示

创建CAD渲染坐标系时需要指定CAD图边界范围!

设置墨卡托渲染坐标系

import { MercatorCoordinateSystem } from '@tx3d/core';

// 设置墨卡托渲染坐标系
engine.crsManager.coordinateSystem = new MercatorCoordinateSystem();
1
2
3
4

提示

坐标转换之前需要先设置地测坐标变换参数

// 设置地测坐标系为“北京54”
coordinateSystem.setGeodeticOptions( 'BEIJING54' );
1
2

注意

  • 如果不指定渲染坐标系,默认会使用空间直角坐标系。
  • 渲染坐标系不允许设置为nullundefined!

🌏 relativeCenter 获取&设置相对中心点。

// 设置相对中心点(标准GIS坐标系坐标)
engine.crsManager.relativeCenter = [  12267093.365897719, 100.0, -4816072.715104974 ];
1
2

注意

相对中心点通常只需要设置一次,除非GIS原始数据坐标系或渲染坐标系发生改变。

// 获取相对中心点
const relativeCenter = engine.crsManager.relativeCenter;
1
2

# 接口

🌏 isRelativeCenterValid 判断当前相对中心点是否有效(即,判断中心点是否已设置)。

// 判断相对中心点是否有效
if ( !engine.crsManager.isRelativeCenterValid() ) {

    // 相对中心点未设置,需要设置相对中心点
    engine.crsManager.relativeCenter = [ 12267093.365897719, 100.0, -4816072.715104974 ];

}
1
2
3
4
5
6
7

🌏 resetRelativeCenter 重置当前相对中心点(即,将相对中心点设置为无效)。

// 重置当前相对中心点
engine.crsManager.resetRelativeCenter();
1
2

🌏 fromGeodeticToGIS 地测坐标转标准GIS坐标,左手坐标系->右手坐标系。

// 地测(巷道、工作面、地层、钻孔等数据)坐标转标准GIS坐标
const gis = engine.crsManager.fromGeodeticToGIS( 12267145.673681745, 4816017.480262117, 0.0 );
1
2

🌏 fromGISToGeodetic 标准GIS坐标转地测坐标,右手坐标系->左手坐标系。

// 标准GIS坐标转地测坐标
const geodetic = engine.crsManager.fromGISToGeodetic( 12267145.673681745, 0.0, -4816017.480262117 );
1
2

🌏 fromGeographicToGIS 地理坐标(经度、纬度、海拔高度)转标准GIS坐标。

// 地理坐标转标准GIS坐标
const gis = engine.crsManager.fromGeographicToGIS( 110.20345733675236, 39.65668117021778, 10.0 );
1
2

🌏 fromGISToGeographic 标准GIS坐标转地理坐标(经度、纬度、海拔高度)。

// 标准GIS坐标转地理坐标
const geographic = engine.crsManager.fromGISToGeographic( 100.0, 0.0, 500.0 );
1
2

🌏 fromGISToWorld 标准GIS坐标转世界坐标,右手坐标系->右手坐标系。

// 标准GIS坐标转世界坐标
const world = engine.crsManager.fromGISToWorld( 12267145.673681745, 0.0, -4816017.480262117 );
1
2

🌏 fromWorldToGIS 世界坐标转标准GIS坐标,右手坐标系->右手坐标系。

// 世界坐标转标准GIS坐标
const gis = engine.crsManager.fromWorldToGIS( 100.0, 0.0, 500.0 );
1
2

🌏 fromGeodeticToWorld 地测坐标转世界坐标,左手坐标系->右手坐标系。

// 地测(巷道、工作面、地层、钻孔等数据)坐标转世界坐标
const world = engine.crsManager.fromGeodeticToWorld( 37431100.40625, 4391638, 0.0 );
1
2

🌏 fromWorldToGeodetic 世界坐标转地测坐标,右手坐标系->左手坐标系。

// 世界坐标转地测坐标
const geodetic = engine.crsManager.fromWorldToGeodetic( 100.0, 0.0, 500.0 );
1
2

🌏 fromGeographicToWorld 地理坐标(经度、纬度,海拔高度)转世界坐标。

// 地理坐标转世界坐标
const world = engine.crsManager.fromGeographicToWorld( 110.20345733675236, 39.65668117021778, 10.0 );
1
2

🌏 fromWorldToGeographic 世界坐标转地理坐标(经度、纬度、海拔高度)。

// 世界坐标转地理坐标
const geographic = engine.crsManager.fromWorldToGeographic( 100.0, 0.0, 500.0 );
1
2
Last Updated: 6/7/2024, 3:20:04 PM