0

在我的 Wire Cloud mashup 中,我想使用两个不同的映射,每个映射从不同的操作员获取数据,每个操作员咨询 ORION 上下文代理的不同实例。

当我将这两个运算符和两个地图放在不同的工作区中时,这些组件可以正常工作。如果我将所有这些组件放在同一个混搭和同一个选项卡中,也可以正常工作。在这两种情况下,我从上下文代理接收数据,操作员发送适用于地图的数据,这个数据完美地代表了数据。

当我将这些运算符和地图放在同一个混搭中但在每个不同的选项卡中时,就会出现我的问题。在这种情况下,我总是会收到以下错误:

Exception catched while processing an event that reached the "notiCAM" input endpoint       fdcae15cbdc8.js:775
log                 fdcae15cbdc8.js:775
propagate           fdcae15cbdc8.js:853
_notifyLoaded       fdcae15cbdc8.js:744

在尝试修复此案例数小时后,我无法找到为什么此地图和运算符在第三种情况下不起作用,是否有人处于同样的情况?哪种解决方案适用于您的情况?

谢谢

PD:对于我的地图,我使用谷歌地图 API

4

1 回答 1

0

我假设您没有使用 FI-LAB 商店中提供的“地图查看器”小部件。

该问题似乎与您的地图小部件处理传入事件的方式有关。考虑到:

  • 当显示它们所在的选项卡或当第一个事件到达它们的任何输入端点时加载小部件
  • 任何到达未加载小部件/操作符的输入端点的事件都会排队,直到该小部件/操作符完全加载
  • WireCloud 通过捕获其 iframe 的“加载”事件来假设小部件/操作员已完全加载

Google Map API 通常是异步加载的,这使得您的小部件无法管理这些传入事件,直到该 API 准备好(加载事件之后的某个时间)。

目前,唯一可行的解​​决方案是在加载事件之后但在加载谷歌地图 api 之前缓冲到达“notiCAM”端点的事件,当该 api 通知您它已准备好时处理它们。

于 2014-08-12T11:44:41.597 回答