|
|
第1行: |
第1行: |
− | {{androidarsdk-sidebar}}
| |
| | | |
− | {{androidarsdk-sidebar}}
| |
− |
| |
− | == AR景区 ==
| |
− |
| |
− | Android AR识别SDK提供景区内AR展示接口,开发者传递景区uid信息,就可以直接使用地图景区内POI数据,Android AR识别SDK会根据使用者当前位置,进行AR展示。 若使用者在景区内,会展示景区内的各子景点信息,若开发者在景区外,会展示整个景点信息<br/>示例代码如下:
| |
− | <pre class="prettyprint codestyle">// 获取地图ArSdkManager管理类
| |
− | ArSdkManager mArSdkManager = ArSdkManager.getInstance();
| |
− | // 传递景区uid
| |
− | mArSdkManager.searchSceneryInfo("2a7a25ecf9cf13636d3e1bad");
| |
− | // 调用类实现OnGetDataResultListener监听,用于接收Android AR识别SDK回调数据信息
| |
− | /**
| |
− | * 返回景区数据,跳转到景区Activity
| |
− | * @param arSceneryResponse
| |
− | */
| |
− | @Override
| |
− | public void onGetSceneryResult(ArSceneryResponse arSceneryResponse) {
| |
− | }
| |
− | // 获取景区信息后跳转到景区展示Activity,展现Activity实现传感器监听,进行渲染
| |
− |
| |
− |
| |
− | private class HoldPositionListenerImp implements SimpleSensor.OnHoldPositionListener {
| |
− | @Override
| |
− | public void onOrientationWithRemap(float[] remapValue) {
| |
− | if (mCamGLView != null && mInfo != null) {
| |
− | if (mInfo.getIsInAoi() && mInfo.getSon() != null && mInfo.getSon()
| |
− | .size() > 0) {
| |
− | // 在景区则传入子点集合
| |
− | mCamGLView.setScenerySensorState(remapValue, getLayoutInflater(),
| |
− | mArPoiItemRl, SceneryArActivity.this, mInfo.getSon(), SceneryArActivity.this);
| |
− | mInfo.getFather().setShowInAr(false);
| |
− | } else {
| |
− | // 不在景区则传入父点
| |
− | ArrayList<ArPoiScenery> father = new ArrayList<>();
| |
− | mInfo.getFather().setShowInAr(true);
| |
− | father.add(mInfo.getFather());
| |
− | for (int i = 0; i < mInfo.getSon().size(); i++) {
| |
− | mInfo.getSon().get(i).setShowInAr(false);
| |
− | }
| |
− | mCamGLView.setScenerySensorState(remapValue, getLayoutInflater(),
| |
− | mArPoiItemRl, SceneryArActivity.this, father, SceneryArActivity.this);
| |
− | }
| |
− | }
| |
− | }
| |
− | }
| |
− | </pre>
| |
− |
| |
− | 效果展示如下:<br/>http://mapopen-pub-androidsdk.cdn.bcebos.com/ar/images/scenic2.jpg
| |