Pubnub-如何从频道取消发布
Pubnub - How to UnPublish from a channel
我尝试实现Pubnub-"实时飞行跟踪地图"示例
有人能告诉我如何从频道取消发布,然后相应的标记应该从地图上消失吗。例如,在上面链接中显示的演示中,如果航班"66e234a"离线,则该标记不应显示在地图中。
请帮助我实现此功能。。
一旦发布,您不想取消发布消息,只需在发布的数据中添加一个状态属性,这样您就可以根据航班状态决定删除、而不是渲染或更改标记。
该演示并没有演示这种类型的功能。PubNub侧有两个选项。
- 为有效载荷添加一个属性,指示飞行的当前状态。通过这种方式,您可以根据飞行状态移动标记或移除标记。在右侧代码面板上
PUBNUB.publish({
channel: 'sfo-flight-data',
message:
{
66e234a: {
latlng: [
37.6271,
-122.3858
],
data: [
"A33D8C",
37.6271,
-122.3858,
118,
0,
23,
"3765",
"F-KSJC3",
"DC10",
"N308FE",
1433383239,
"SFO",
"MEM",
"FX1345",
1,
0,
"FDX1345",
,0
"active" //ADDED
],
},
//...
}
});
在左边,当接收到消息时呈现标记的代码。
var map = eon.map({
id: 'map',
mb_id: 'ianjennings.lec06po7',
mb_token: 'pk.eyJ1IjoiaWFuamVubmluZ3MiLCJhIjoiZExwb0p5WSJ9.XLi48h-NOyJOCJuu1-h-Jg',
channel: 'sfo-flight-data',
rotate: true,
history: true,
marker: function (latlng, data) {
if(data[15] !== 'active'){ //EVALUATED
return;
}
var marker = new L.RotatedMarker(latlng, {
icon: L.icon({
iconUrl: '/wp-content/uploads/2016/05/airplane.png',
iconSize: [24, 24]
})
});
var popup = '';
if(data[13]) {
popup = 'Flight ' + data[13] + '';
}
if(data[11]) {
if(!popup.length) {
popup = 'Flight from ' + data[11];
} else {
popup += ' from ' + data[11];
}
}
if(data[12]) {
if(!popup.length) {
popup = 'Flight to ' + data[12];
} else {
popup += ' to ' + data[12];
}
}
if(!popup.length) {
var popup = 'No data available';
}
marker.bindPopup(popup);
return marker;
}
});
总的想法是对飞行状态的变化做出反应。
取消发布并删除标记
如果您将航班设置为0.0
和0.0
,它能工作吗?
66e234a: {
latlng: [
0.0,
0.0
]
然而,unpublish
"从地图上删除标记"的功能可以作为功能请求添加到此处:https://github.com/pubnub/eon/issues/new-New Feature
"所有移除地图上标记的能力"。现在,您可以发布0.0
、0.0
的LAT/LONG。
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- jquery点击函数select&取消选择
- 将电视直播频道从网站嵌入我的网站
- 使用Jquery选择或取消选择ListView中的所有复选框
- 使用jquery选中/取消选中单个复选框
- 使用javascript取消隐藏和隐藏表单中的某些元素
- 如何销毁/删除/取消绑定SnapSVG.js
- 滚动然后捕捉到顶部而不是取消捕捉
- 取消绑定主干视图事件
- 如何取消object.prototypes javascript的一个函数
- 使用javascript在页面加载时取消选中所有复选框
- 阻止浏览器对keydown事件作出反应,但不取消该事件
- jquery选中并取消选中所有操作
- IE11中的第二个调用取消了第一个Fetch API调用
- 如何知道使用socket.io订阅/取消订阅频道
- 使用javascript后台脚本获取Yotutube频道信息
- 如何在单击“提交”按钮时为“新建”窗口编写JavaScript,用“确定”和“取消”显示注册信息
- 如何在javascript中取消选择文本框
- Pubnub-如何从频道取消发布
- 是否可以使用socket.io取消订阅MtGox API频道