首页 > 其他分享 >Cesium调整3DTile/tileset 点位移动

Cesium调整3DTile/tileset 点位移动

时间:2023-04-13 13:44:06浏览次数:45  
标签:tileset WGS84 经纬度 3DTile var Cesium 坐标系

以下是将tileset的位置调整到北京(在WGS84坐标系下)的正确代码:

var tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
    url: 'path/to/your/tileset'
}));

tileset.readyPromise.then(function() {
    // 获取tileset的中心点坐标
    var boundingSphere = tileset.boundingSphere;
    var center = boundingSphere.center;

    // 将中心点坐标转换为WGS84坐标系下的经纬度
    var cartographic = Cesium.Cartographic.fromCartesian(center);
    var longitude = Cesium.Math.toDegrees(cartographic.longitude);
    var latitude = Cesium.Math.toDegrees(cartographic.latitude);

    // 将经纬度调整为北京的经纬度
    var beijingLongitude = 116.4074;
    var beijingLatitude = 39.9042;

    // 计算tileset的平移量,并将其应用到modelMatrix中
    var translation = Cesium.Cartesian3.fromDegrees(beijingLongitude, beijingLatitude);
    var centerNew = Cesium.Cartesian3.fromDegrees(longitude, latitude);
    var translationVector = Cesium.Cartesian3.subtract(translation, centerNew, new Cesium.Cartesian3());
    tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translationVector);
});

在以上代码中,我们首先获取tileset的中心点坐标,并将其转换为WGS84坐标系下的经纬度。然后,我们将经纬度调整为北京的经纬度,并计算tileset的平移量。最后,我们将平移量应用到tileset的modelMatrix中,以将其位置调整到北京。

需要注意的是,以上代码假设tileset在WGS84坐标系下。如果tileset在其他坐标系下,则需要进行相应的坐标系转换。

本文转自 https://blog.csdn.net/a571574085/article/details/130065414,如有侵权,请联系删除。

标签:tileset,WGS84,经纬度,3DTile,var,Cesium,坐标系
From: https://www.cnblogs.com/hustshu/p/17314464.html

相关文章

  • Cesium的搜索框如何自定义功能
    geocoder提供了地理编码功能用来搜索位置,但是在离线环境下无法使用。为了将这个搜索框用起来,添加根据坐标搜索的功能,可以这么写:viewer.geocoder._form.children[0].placeholder="请输入:经度,纬度";viewer.geocoder.autoComplete=false;functionmyGeocoder(){......
  • Cesium中显示栅格数据查询结果
    Cesium通过wms或者wmts服务加载发布的矢量数据,点选数据时会有一个属性框,如图:而对于栅格数据则不会出现这个框,为了解决这个问题,需要创建一个空的Entity,当点击时就会出现这个框了。像这样: 实现方法参考了geoserver里面基于openlayer的图层预览:url=url+......
  • Cesium如何加载PBS发布的WMTS服务
    Cesium加载Geoserver发布的WMTS服务,url示例:'http://localhost:8080/geoserver/gwc/service/wmts/rest/nurc:mosaic/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}?format=image/png',而PBS(PortableBasemapServer)发布的地址是这样:http://192.168.58.1:7080/PBS/re......
  • Cesium离线部署的正确方法
    网上相关文章比较杂,有的说要改源码,其实不用,都试了一遍发现这样才对varmyProviderViewModel=newCesium.ProviderViewModel({name:"天地图地形",tooltip:"",iconUrl:"Widgets/Images/ImageryProviders/naturalEarthII.png",c......
  • Cesium
    实景三维 参考资料数字三维http://csit.anancar.cn/p/index.php?title=%E6%95%B0%E5%AD%97%E4%B8%89%E7%BB%B4#Cesium_.E6.8B.9B.E8.81.98.E8.A6.81.E6.B1.82 Cesium中国博客列表https://my.oschina.net/u/1470240  CesiumLab视频教程http://www.iqiyi.com/w_19s2......
  • 基于vue和vite的cesium、cesiumNavigation使用--(1)项目构建及引入
    ​系统信息windows10LTSC21H2vscode:1.77.1nodejs:18.15.0npm:9.5.0版本信息vue:3.2.47vite:4.1.4cesium:1.104.0vue-router:4.1.6默认在以上的js相关版本下构建环境,并包括创建vue项目,创建vue-router文件并构建路由,创建vue视图等等,以上内容不再赘述。如环境和版本不同,则项......
  • cesium:Transforms
    Transforms类提供了一些用于坐标变换的方法,可以帮助我们在不同的参考系之间转换点或向量。cesium中最常用的transforms类有以下几个:Transforms.eastNorthUpToFixedFrame(origin,ellipsoid,result)这个方法接受一个原点参数、一个椭球体参数和一个可选的结果参数,返回一个4x4的......
  • 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......