首页 / 浏览问题 / 移动GIS / 问题详情
imobile android端添加三维图层
29EXP 2025年01月16日

imobile 11  android

加载三维模型,先打开了场景device_scene1,然后device_scene2中的图层通过data获取其path和name,然后逐个添加到三维场景中。

layer3Ds = scene?.layers
for (i in 0 until it.length()) {
    var layer = it.getJSONObject(i)
    var layerPath = layer.getString("path")
    var layerName = layer.getString("name")
    if (layerName.contains("管廊_设备")) {
        layer3Ds?.add(url, Layer3DType.OSGBFILE, layerName+i, false)
    }
}

但是这样add一直报错,看着像是说图层重复了,但是添加图层过滤后,还是不行 

麻烦帮忙看一下是什么问题呢?

java.lang.IllegalStateException: indexOf(String name)
                                                                                                    
                                                                                                        at com.supermap.realspace.Layer3Ds.indexOf(Layer3Ds.java:536)
                                                                                                        at com.supermap.realspace.Layer3Ds.add(Layer3Ds.java:333)
                                                                                                        at com.jm.yssh.ui.activity.ModelActivity$getExtraLayer$1.onSucceed(ModelActivity.kt:90)
                                                                                                        at com.jm.yssh.ui.activity.ModelActivity$getExtraLayer$1.onSucceed(ModelActivity.kt:82)




1个回答

1、分析报错堆栈日志是在layer3ds.add接口,建议打断点逐个图层url调试,看看到底是哪一个url图层无法添加!

2、定位到某个图层无法添加后,就模拟用空场景就只添加这个特定的图层看是否正确,以及报错日志!

3、确认这个url图层的类型是osgbfile类型,否则会添加失败。在iserver url元信息里看图层类型。
1,605EXP 2025年01月16日
...