You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从3D对象中获取X,Y,Z坐标?怎样提取Sketchfab标注点坐标存入数据库

需求可行性确认

这个需求完全可以实现,Sketchfab平台存储的3D标注本身就是绑定模型空间坐标存储的,只要你拥有对应模型的访问权限,就可以拿到标注的完整坐标数据。

具体提取方法
  • 方法1:通过Sketchfab Viewer API 自动化批量提取(推荐生产环境使用)
    这是稳定性最高的方案,适合需要批量同步标注数据到自有数据库的场景。你可以在自己的业务页面嵌入Sketchfab的iframe播放器,初始化官方提供的Viewer API后,直接调用getAnnotations()方法获取所有标注数据,返回的标注对象中position3D字段就是标准[x, y, z]格式的3D空间坐标,你可以直接将该字段以及你需要的关联标注信息(比如标注名称、描述)一起提交到自有数据库存储。
    参考代码示例:

    // 页面中提前添加id为api-frame的iframe元素指向Sketchfab模型
    const iframe = document.getElementById('api-frame');
    const sketchfabClient = new Sketchfab(iframe);
    
    sketchfabClient.init('你的模型唯一UID', {
      success: (api) => {
        api.start();
        api.addEventListener('viewerready', () => {
          // 获取所有标注数据
          api.getAnnotations((annotationList) => {
            annotationList.forEach(anno => {
              const annotationData = {
                id: anno.id,
                name: anno.name,
                coordinate: anno.position3D, // 3D坐标字段
                normal: anno.normal // 标注点法向,可选存储
              };
              // 此处添加你的业务请求逻辑,将annotationData提交到自有数据库
            });
          });
        });
      },
      error: () => console.log('播放器初始化失败,请检查模型权限和UID是否正确')
    });
    

    注意:如果是私有模型,需要在init方法中额外传入你账号生成的访问令牌,才能正常拉取标注数据。

  • 方法2:手动提取(适合临时少量标注场景)
    如果你只需要提取少数几个标注的坐标,不需要做自动化流程,可以直接通过浏览器开发者工具获取:打开对应3D模型的Sketchfab页面,按下F12打开开发者工具,切换到「网络」面板,过滤请求关键词annotations,找到对应请求后,返回的JSON报文中即可直接找到每个标注的position3D字段值,手动复制后存入你的数据库即可。

注意事项

提取到的坐标为模型自身的局部坐标系坐标,如果你后续需要将坐标应用到其他3D引擎或平台,需要确认两个平台的坐标系规则是否一致,必要时做坐标转换避免位置偏移。
请确保你对提取标注的模型拥有合法的访问、使用权限,避免违规操作。


内容的提问来源于stack exchange,提问作者Faris Afiq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 06:15:07