首页 > 其他分享 >cesium:Transforms

cesium:Transforms

时间:2023-04-10 18:44:07浏览次数:40  
标签:5.0 Cartesian3 viewer transform Cesium Transforms cesium new

Transforms类提供了一些用于坐标变换的方法,可以帮助我们在不同的参考系之间转换点或向量。
cesium中最常用的transforms类有以下几个:
Transforms.eastNorthUpToFixedFrame(origin, ellipsoid, result)
这个方法接受一个原点参数、一个椭球体参数和一个可选的结果参数,返回一个4x4的变换矩阵,将一个点或向量从东北上(ENU)局部坐标系变换到地球固定系。这个方法可以用于创建以某个位置为中心的局部参考系。
例如,以纽约市某点为原点,建立局部坐标系到地固坐标系的转换关系。
下面的代码分别在x,y和z轴上创建了三个椭球,给的是局部坐标系坐标,但是position配置项中使用transform转换矩阵转到了地固坐标。

//代码可以复制到cesium沙盒中直接运行
// Create a scene
const viewer = new Cesium.Viewer("cesiumContainer");

// Get the position of New York City in Cartesian coordinates
var origin = Cesium.Cartesian3.fromDegrees(-74.01881302800248, 40.69114333714821);

// Get the transform matrix from ENU frame to Earth fixed frame
var transform = Cesium.Transforms.eastNorthUpToFixedFrame(origin);

// Add a red sphere of radius 5 meters at the origin of the local frame
const entity=viewer.entities.add({
name: "originPoint",
position: new Cesium.ConstantPositionProperty(origin),
ellipsoid: {
radii: new Cesium.Cartesian3(5.0, 5.0, 5.0),//椭球半径
material: Cesium.Color.WHITE,
},
});

var originX=new Cesium.Cartesian3(30.0, 0.0, 0.0);
const entity2=viewer.entities.add({
name: "xAxios",
position: new Cesium.ConstantPositionProperty(
Cesium.Matrix4.multiplyByPoint(transform, originX,new Cesium.Cartesian3())
),
ellipsoid: {
radii: new Cesium.Cartesian3(5.0, 5.0, 5.0),
material: Cesium.Color.RED,
},
});

var originY=new Cesium.Cartesian3(0.0, 30.0, 0.0);
const entityY=viewer.entities.add({
name: "yAxios",
position: new Cesium.ConstantPositionProperty(
Cesium.Matrix4.multiplyByPoint(transform, originY,new Cesium.Cartesian3())
),
ellipsoid: {
radii: new Cesium.Cartesian3(5.0, 5.0, 5.0),
material: Cesium.Color.GREEN,
},
});

var originZ=new Cesium.Cartesian3(0.0, 0.0, 30.0);
const entityZ=viewer.entities.add({
name: "zAxios",
position: new Cesium.ConstantPositionProperty(
Cesium.Matrix4.multiplyByPoint(transform, originZ,new Cesium.Cartesian3())
),
ellipsoid: {
radii: new Cesium.Cartesian3(5.0, 5.0, 5.0),
material: Cesium.Color.BLUE,
},
});
viewer.flyTo(entity);

标签:5.0,Cartesian3,viewer,transform,Cesium,Transforms,cesium,new
From: https://www.cnblogs.com/marshban/p/17303898.html

相关文章

  • Cesium案例(八) Terrain
    第一步正常建viewer,需要注意的是官网例子属性值比较老,最新版本的属性值有所差异,全copy官网会无法运行,提示函数未定义。第一处差异官网: 1constviewer=newCesium.Viewer("cesiumContainer",{2terrain:Cesium.Terrain.fromWorldTerrain({3requestWaterMask:t......
  • Cesium中加载大规模数据稳定流畅之性能优化思路
    1. 使用数据流技术:Cesium支持使用数据流技术,即按需加载和卸载数据,以最小化数据传输量和加载时间。实现原理大致如下:Cesium会根据相机位置和高度动态调整3DTiles的细节级别,并将需要渲染的Tiles加入渲染队列。当队列中的Tiles的内存使用量超过maximumMemoryUsage属性......
  • Cesium 案例 (七) Time Dynamic Wheels
      知识点和api都以注释的形式标注在了代码中,学习Cesium官方案例可以作为辅助理解代码,进行自我学习和案例复现。主要学习网站:cesium官网案例源码cesium中文网api文档 Cesium.Ion.defaultAccessToken=    "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI......
  • Cesium案例(六) Time Dynamic Wheels
     知识点和api都以注释的形式标注在了代码中,学习Cesium官方案例可以作为辅助理解代码,进行自我学习和案例复现。主要学习网站:cesium官网案例源码cesium中文网api文档 Cesium.Ion.defaultAccessToken=    "token";   constviewer=newCesium.Viewer("ce......
  • Cesium案例(五) Underground Color
       Cesium.Ion.defaultAccessToken=    token   constviewer=newCesium.Viewer("cesiumContainer");   constscene=viewer.scene;   constglobe=scene.globe;   //获取或设置深度测试椭球。   scene.screenSpaceCa......
  • Cesium 案例(三) Web Map Service(WMS) Washington DC 2017
    WMSCesium.Ion.defaultAccessToken="token";   constviewer=newCesium.Viewer("cesiumContainer");   //AddaWMSimagerylayer   constlayer=newCesium.ImageryLayer(    newCesium.WebMapServiceImageryProvider({ ......
  • pytorch中的transforms.ToTensor和transforms.Normalize理解
     ......
  • Cesium 案例(二)Web MapTile Service with Time
    使用官方github包,部分解释来源于http://cesium.xin/cesium/cn/Documentation1.95/index.html  Cesium.Ion.defaultAccessToken=token;   constviewer=newCesium.Viewer("cesiumContainer",{    shouldAnimate:true,    //时钟应该默认尝试......
  • Cesium实例化绘制(Instanced Drawing)
    上篇《WebGL-实例化绘制》我们学习了实例化webgl底层实现原理,基于webgl1.0标准的扩展。这篇博客我们来了解下cesium引擎是如何支持实例化功能的。该篇公众号主要参考了博客:《Cesium原理篇:6Render模块(6:Instance实例化)》。假如有这样的需求:有四个不同颜色的点,它们的相对位置(......
  • Cesium:entity闪烁(点、面以及billboard)
    entity的闪烁主要是通过回调函数CallbackProperty,控制样式改变或是否显示1.点的闪烁functionf2(){ varx=1; varflog=true; viewer.entities.add({ name:"圆点p......