首页 / 浏览问题 / 其他 / 问题详情
iEarth三维地球 初始化两个产生上下文丢失问题
3EXP 2025年03月14日

问题描述:

在使用三维地球(SuperMap iEarth)开发时,在组件里重新又初始化了一个地球,添加了实体后报错,具体两个地图的结构如下,以及新初始化的代码方式

报错信息:

1个回答

您好,

1、SuperMap iEarth是基于SuperMap iClient3D for WebGL开发的在线示例,一个页面种可以初始化多个球,需要保证他们以不同的div作为载体,如您代码截图中初始化的时候两个div的id不能一样。

2、报错信息图片中,这里是警告信息,对场景加载不影响,报错信息应为红色
987EXP 2025年03月17日
两个div的id是不一样的,这个黄色的错误会导致在切换两个三维地球使用同样的地形图上面加载同样的entity时,后打开的无法加载显示正确

如果是两个div,他们是相互不影响的,根据你描述提到的切换三维球,以及输出提示中对象不属于当前上下文,是不是在切换时的用发错误。可以参考如下实现方法,也可以使用iframe嵌套另一个页面实现

就您截图的实例,我也是做了这样的初始化,,问题依旧还是存在,显示结构不是这种同时在一个页面加载两个的

使用vue开发,一个是全局的view,存在Window中的 ,另一个是临时初始化的,分别用不同的div且iD不同,

只要渲染过全局的view,如添加一个实体,再去加载临时的地图组件做处理时就会出现之前的黄色截图报警,导致无法完全显示

除非操作一个销毁一个才不会互相影响
如上图,同时初始两个viewer,根据需求先把其中一个隐藏起来,对接具体业务时再展示。或是启另一个页面通过iframe嵌套
...