2016-08-04 48 views
1

UNPUBLISH我試圖實現Pubnub - "Realtime Flight Tracking Map" examplePubnub - 如何從一個通道

誰能告訴我如何從一個通道取消發佈,然後在相應的標記應該從地圖上消失。 例如,在上面的鏈接中顯示的演示中,如果航班「66e234a」離線,則標記不應顯示在地圖中。

請幫我實現這個功能..

+0

這可以作爲一個功能要求在這裏添加:https://github.com/pubnub/eon/issues/new - '新功能*​​「所有能夠刪除地圖上的標記」**。現在你可以發佈一個LAT/LONG的'0.0','0.0'。 – PubNub

回答

1

發佈後,您不希望取消發佈消息,只需向要發佈的數據添加狀態屬性,以便您可以決定根據航班狀態刪除,不呈現或更改標記。

該演示沒有演示該類型的功能。您有兩個來自PubNub端的選項。

  1. 將一個屬性添加到您的有效載荷中,以指示當前的航班狀態。這樣,您可以移動標記,或根據飛行狀態移除標記。在左側右側代碼面板
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

太棒了!謝謝 – Charu

0

取消發佈和刪除標記

請問,如果你設置飛行0.00.0工作?

66e234a: { 
     latlng: [ 
     0.0, 
     0.0 
     ] 

但是能力unpublish「從地圖移除標記」可以作爲一個功能要求的位置:https://github.com/pubnub/eon/issues/new - New Feature「取消對地圖標記所有的能力。」現在您可以發佈LAT/LONG的0.0,0.0

相關問題