iServer9D,导入模型实现平移、旋转操作

0 投票
iServer9D,插件开发,导入SGM模型文件并添加到跟踪图层。想要对导入模型进行平移,旋转等操作。但使用api中提供的方法及属性设置均无任何效果。请问有没有相关代码提供参考,或应如何实现上述功能,谢谢!
11月 6, 2017 分类:  716次浏览 | 用户: SSDream 初出茅庐 (24 分)

3 个回答

0 投票
你好,后台具体实现的时候用的是iServer服务提供者/服务组件提供的方法还是直接使用的java组件提供的相关方法?可以回复下相关代码
11月 7, 2017 用户: 毛瑞 名扬四海 (1,780 分)
插件开发,js实现:

//导入模型部分代码
 geomodel=new SuperMap.Web.Core.GeoModel();                   geomodel.fromModelFile("http://localhost:8090/RealspaceSample/"+modelName+".zip");  

 geomodel.set_position(point3d);      
 var style=new SuperMap.Web.Core.Style3D();
 style.set_altitudeMode(2);
 var feature=new SuperMap.Web.Core.Feature3D();
 feature.set_geometry(geomodel);
 feature.set_style3D(style);                   scene.get_trackingLayer3D().add(feature,modelName);

//实现方法部分代码

//geomodel.offset3D(30,30,20);
//var point3D = geomodel.get_position();
//var Vector3D = new SuperMap.Web.Core.Vector3D(point3D.x,point3D.y,point3D.z);
//geomodel.rotate3D(Vector3D,30);

是参考api方法写的,是否存在问题?
呃,抱歉,我以为是后端扩展iServer了。。。我让别的同事回复你。
好的,多谢
您好,旋转请用:

geomodel.set_rotationX(20);

geomodel.set_rotationY(20);

geomodel.set_rotationZ(20);

获取或设置三维几何对象沿 X (Y、Z)轴方向的旋转角度。采用的坐标系以球心为原点,北方向为 Y 轴的右手坐标系。该属性目前只对模型、图片有效。

3D那个偏移我试了一下,确实没效果,直接修改模型的position吧。
0 投票
首先用feature3D.get_geomodel()获取模型,然后用您写好的参数修改后,用feature3D.updatedata()更新数据。
11月 7, 2017 用户: 张阳名 登峰造极 (5,347 分)
api中提供feature3D.get_geometry(),我这里geomodel是全局变量,我直接设置了参数geomodel.set_rotationX(20);然后按照您说的feature.updateData();没有效果。

然后我换了另一种方式先把模型从跟踪图层上移除scene.get_trackingLayer3D().removeAt(scene.get_trackingLayer3D().indexOf(modelName));设置完参数后在进行添加scene.get_trackingLayer3D().add(feature,modelName);也没有效果。

请问哪里存在问题吗?或者有示例可以提供参考吗,谢谢
另外我通过设置geomodel.set_position(point3D);feature.updateData();只改变了模型的高度值,可以修改成功,但是相机视角会直接贴到地面上了。
这个我这边先测试下,如果是缺陷,我这边报一个缺陷。如果不是缺陷,我就把对应的代码贴上来
0 投票
该问题是缺陷,我这边报个缺陷,如果解决了,给你一个包
12月 6, 2017 用户: 宋翔 学富五车 (532 分)
好的,感谢
...