我正在使用pubnub的eon-map框架进行实时数据/标记更新,
在我的情况下,有多个团队,每个团队包含多个成员,每个成员在独特渠道上发布他们的数据,例如:xyz-member.id
我想跟踪一个选定的成员并跟踪所有功能。
我见过Realtime Flight Tracking Map但在该示例中,他们从一个节点而不是多个节点发布所有数据。
地图配置:
let pn = new PubNub({
publishKey: 'key',
subscribeKey: 'key'
});
let map = eon.map({
pubnub: pn,
id: 'tracking-map',
mbToken: 'token',
mbId: 'id',
//channels array equal to members.length
channels: ['xyz-member.id', 'xyz-member.id', 'xyz-member.id'],
message: (data, token, ch) => {
map.setView(data[0].latlng, 15);
}
});
发布前言
pn.publish({
channel: 'xyz-member.id', //each member create their own channel.
message: [
{"latlng": [latitude, longitude]}
]
});
答案 0 :(得分:2)
是的,您当然可以从许多节点发布。您的EON地图只能订阅1个频道。您需要为每个成员发布到相同的频道。该消息应包含地图上每个信标的唯一密钥。
会员A
pubnub.publish({
channel: 'map',
message: {
point_1: {
latlng: [37.370375, -97.756138]
}
}
});
会员B
pubnub.publish({
channel: 'map',
message: {
point_2: {
latlng: [23.234, -94.32346]
}
}
});
EON地图订阅:
channels: ['map']
此方案的有用代码示例 Distributed.html 位于:https://github.com/pubnub/eon-map/tree/master/examples