功能开发
AR沙盘开发需要的类库包括com.supermap,ar、com.supermap.data、com.supermap.mapping、sceneform-sm-11.0.0.aar,需要的so库包括libimb.so。
关键类和接口如下表:
类 | 接口 |
---|---|
AREffectView | openGesture()、onPause()、onResume() |
ARViewEffectElement | setVisiblity()、setParentNode()、setPosition()、setRelativePosition()、loadModel() |
AREffectElement | setParentNode()、setPosition()、.setRelativePosition()、loadModel() |
//绝对位置,设置父节点
parentElement = new AREffectElement(getApplicationContext());
parentElement.setParentNode(arFragment);//设置父节点(相对布局)
parentElement.setPosition(new Point3D(0,0,0));//设置AR对象在AR场景位置
//加载模型
terrainModelElement = new ARGltfElement(getApplicationContext());
terrainModelElement.setParentNode(terrainElement);
terrainModelElement.loadModel(R.raw.terrain10301);//加载模型
terrainModelElement.setScaleFactor(new float[]{0.955f*0.01f,0.955f*0.01f,0.955f*heiScalse*0.01f});//模型比例
terrainModelElement.setRelativePosition(new Point3D(-1.45f,0.13f,0.55f));//设置AR对象相对于父节点位置
terrainModelElement.setRotationAngle(axisZ,180);//设置旋转角度
如果需要手势操作沙盘,需要开启手势操作。
AREffectView arFragment = findViewById(R.id.ar_effect);
arFragment.openGesture(); //开启手势控制