2016-12-29 27 views
0

我想刪除Mapbox地圖上的源和圖層。我設法移除除添加到Mapbox地圖上的第一個源和圖層以外的所有源和圖層。Mapbox無源使用此ID

請注意,我不擅長使用jQuery $ .post。

這裏是我如何添加所有的來源和圖層。

$.post('ajax/marker.php', function(data) 
{ 
    var firstSplit = data.split(","); 

    for(i=0;i<firstSplit.length-1;i++) 
    { 
     var secondSplit = firstSplit[i].split("|"); 
     var id = secondSplit[0]; 
     var lat = secondSplit[1]; 
     var lng = secondSplit[2]; 

     var point = { 
      "type": "Point", 
      "coordinates": [lat, lng] 
     }; 

     map.addSource(id, { type: 'geojson', data: point }); 
     map.addLayer({ 
      "id": id, 
      "type": "symbol", 
      "source": id, 
      "layout": { 
       "icon-image": "airport-15" 
      } 
     }); 
    } 
}); 

請記住,我設法查看了Mapbox地圖上的所有源和圖層。 它只是我不能夠只刪除我已經添加到地圖的第一個來源和圖層。我希望有人對這個問題有一些想法。謝謝。

我在循環中使用了下面的兩個語句來刪除源和圖層。

map.removeSource(id); 
map.removeLayer(id); 

我做了一個測試,以手動刪除第一個來源和圖層,但它沒有奏效。

map.removeSource('1612280004A'); 
map.removeLayer('1612280004A'); 

但是,它適用於下一個來源和圖層。

+0

是第一源也用作初始地圖的風格?如果是這樣,請嘗試添加空白背景樣式,然後添加所有其他來源。 – malcolm

回答

2

從你發佈的內容中,我最好的猜測是你仍然無法刪除圖層,但仍然有源代碼附加到它。嘗試扭轉你的兩個語句的順序:

map.removeLayer('1612280004A'); map.removeSource('1612280004A');