我正在使用 pubnub 的 eon-map 框架进行实时数据/标记更新,
就我而言,有多个团队,每个团队包含多个成员,每个成员在唯一的 channel 上发布他们的数据,例如:xyz-member.id
我想跟踪选定的成员并跟踪所有功能。
我见过Realtime Flight Tracking Map但在该示例中,他们发布来自一个节点而不是多个节点的所有数据。
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]}
]
});
最佳答案
是的,您当然可以从多个节点发布。您的 EON map 只能订阅 1 个 channel 。您需要为每个成员发布到同一 channel 。该消息应包含 map 上每个信标的唯一 key 。
成员(member)A
pubnub.publish({
channel: 'map',
message: {
point_1: {
latlng: [37.370375, -97.756138]
}
}
});
成员(member)B
pubnub.publish({
channel: 'map',
message: {
point_2: {
latlng: [23.234, -94.32346]
}
}
});
EON map 订阅:
channels: ['map']
此场景Distributed.html的有用代码示例位于:https://github.com/pubnub/eon-map/tree/master/examples
关于mapbox - 如何使用 pubnub 跟踪多个设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49651547/