WebODM生成3DTiles模型在Cesium地图上会垂直显示问题解决(y-up-to-z-up)

问题描述

3dtiles模型生成后,在Cesium中显示时,y轴向上,z轴向上,x轴向上,导致模型显示异常,无法正常显示

问题原因

WebODM是先生成glb模型,而后再进行3dtiles转换; glb模型一般是y轴向上,所以转换后的3dtiles模型也是Y轴向上; WebODM生成的3dtile是使用其自研的Obj2Tiles🔗进行转换的,但Obj2Tiles其实是有z-up的api配置; 由于WebODM在调用Obj2Tiles的时候没有做z-up的配置选项,故而需要修改调用源代码;

解决思路

修改ODM🔗仓库内的ogctiles.py🔗代码,如下:

python 复制代码
    # .......上文忽略......

      try:
        kwargs = {
            'input': input_obj,
            'output': output_path,
            'divisions': divisions,
            'lat': lat,
            'lon': lon,
            'alt': alt,
        }
        system.run('Obj2Tiles "{input}" "{output}" --divisions {divisions} --lat {lat} --lon {lon} --alt {alt} '.format(**kwargs))

    # 改为以下↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    try:
        kwargs = {
            'input': input_obj,
            'output': output_path,
            'divisions': divisions,
            'lat': lat,
            'lon': lon,
            'alt': alt,
        }
        CmdStr = 'Obj2Tiles "{input}" "{output}" --divisions {divisions} --lat {lat} --lon {lon} --alt {alt}'.format(**kwargs)
        # 方向转换,空格不可缺
        CmdStr += ' --y-up-to-z-up'

        system.run(CmdStr)

  # .......下文忽略......

具体操作

WebODM安装参考: 透過WSL2在Windows執行WebODM🔗

在docker中安装好WebODM仓库后,使用docker命令行进入 名称为 webodm-node-odm-1 的容器中, cd进入仓库目录 /code/opendm,然后修改其文件下的ogctiles.py文件

shell 复制代码
# 1. 查看容器列表,找到odm服务容器,一般名称都为 webodm-node-odm-1
docker ps -a 

# 2. 将容器内的文件复制到服务器目录下
docker cp webodm-node-odm-1:/code/opendm/ogctiles.py /服务器某个目录/ogctiles.py 

# 3. 将文件中的代码添加--y-up-to-z-up,如上述代码

# 4. 将修改后的文件复制回容器中
docker cp /服务器某个目录/ogctiles.py webodm-node-odm-1:/code/opendm/ogctiles.py

# 5. 进入容器内部
docker exec -it webodm-node-odm-1 bash

# 6. 查看文件是否已更改
cat /code/opendm/ogctiles.py

# 7. 如未更改则重新复制,已更改则重启docker应用
相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万1 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁1 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
supermapsupport1 天前
SuperMap GIS 基础产品 FAQ 集锦(20260918)
gis·supermap·iserver
汉堡大王95271 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大1 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师1 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端