分享
查看: 2379|回复: 0

[分享] 地图中的园区场景添加模型后角度发生偏移,不在水平位置

[复制链接]

地图中的园区场景添加模型后角度发生偏移,不在水平位置

发表于 2023-7-28 16:06:03 来自 分享 只看大图 阅读模式 倒序浏览
zzv_icon2379 zzr_icon0 查看全部
本帖最后由 18979425409 于 2023-7-28 16:06 编辑

地图中,模型添加到园区场景时角度发生巨大偏移,如图所示:
地图中的园区场景添加模型后角度发生偏移,不在水平位置

解决方法:
情况一:创建模型时,没有给模型添加父类,即没有使用parent属性;
在创建模型时,设置angles属性:
  1.    var lonlat = [115.92384650579598, 40.51270900587845] //经纬度
  2.     // 不给模型添加父类
  3.     var obj = app.create({
  4.         type: 'Thing',
  5.         name: '公安警车1',
  6.         url: '/api/models/B39FE21108684582894A2E66F52FB8F9/0/gltf/',
  7.         position: CMAP.Util.convertLonlatToWorld(lonlat, 0.5),  //经纬度转世界坐标
  8.         angles: CMAP.Util.getAnglesFromLonlat(lonlat, 65),  //地球上根据经纬度和方位角得到可以使物体贴地的旋转信息
  9.         complete: function () {
  10.         }
  11.     });
复制代码
注意:angles后面的“65“应该和创建园区场景中的angles的getAnglesFromLonlat的第二个属性值”65“保持一致。

情况二:创建模型时,给模型添加父类,即使用parent属性,则无需使用angles属性进行设置
  1.   // 给模型添加父类(模型在园区层级下)
  2.     var obj2 = app.create({
  3.         type: 'Thing',
  4.         name: '公安警车',
  5.         url: '/api/models/B39FE21108684582894A2E66F52FB8F9/0/gltf/',
  6.         localPosition: [5, 5, 5],   //设置模型在父物体坐标系啊的相对位置
  7.         parent: app.query(".Campus")[0],
  8.         complete: function () {
  9.         }
  10.     });
复制代码

总结:在地图中,创建好园区场景后再在园区场景中创建物体,如果我们是将模型创建在园区场景层级下,我们无需设置angles,如果没有,则需要在创建模型时设置angles属性和园区场景的angles属性保持在统一水平线。

API手册地址:
convertLonlatToWorld:https://support.thingjs.com/book/thingjs-api10/62b809bfb33e6f3a465b6d03#<static>%20convertLonlatToWorld(lonLat,%20h)%20%E2%86%92%20{Array}
getAnglesFromLonlat:https://support.thingjs.com/book/thingjs-api10/62b809bfb33e6f3a465b6d03#<static>%20getAnglesFromLonlat(lonlat,%20angle)%20%E2%86%92%20{Array}




avatar
游客~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

130700ppkpl8x3t7tt1b1t