2016-12-29 2 views
0

Я хочу удалить источники и слои на карте Mapbox. Мне удалось удалить все источники и слои, кроме первого источника и слоя, которые я добавил в Mapbox map.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');

Смежные вопросы