2016-12-29 2 views
0

マップボックスの地図上でソースとレイヤーを削除します。 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" 
      } 
     }); 
    } 
}); 

マップボックスのすべてのソースとレイヤーを表示することができました。 私はしかマップに追加していない最初のソースとレイヤーを削除できません。私は誰かがこの問題に関するいくつかのアイデアを持っていることを願っている。ありがとう。

以下の2つのステートメントをループ内で使用して、ソースとレイヤーを削除しました。

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

私は以下のように手動で最初のソースとレイヤーを削除するテストを行いましたが、動作しませんでした。

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

ただし、次のソースとレイヤーで機能します。

+0

はまた、最初のマップスタイルとして使用された最初のソースですか?その場合は、空の背景スタイルを追加してから、他のすべてのソースを追加してみてください。 – malcolm

答えて

2

まだ投稿されているソースがある間は、レイヤーを削除できないというのは、私が投稿したものです。あなたの二つの文の順序を逆にしてみてください。

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

関連する問題