2016-12-29 1 views
0

Ich möchte Quellen und Ebenen auf Mapbox Karte entfernen. Es ist mir gelungen, alle Quellen und Ebenen zu entfernen, mit Ausnahme der ersten Quelle und Ebene, die ich der Mapbox-Map hinzugefügt habe.Mapbox Keine Quelle mit dieser ID

Beachten Sie, dass ich nicht gut jQuery $ .post verwenden kann.

Hier ist, wie ich alle Quellen und Ebenen hinzufügen.

$.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" 
      } 
     }); 
    } 
}); 

dass Denken Sie daran, gelang es mir, alle Quellen und Schichten auf MapBox Karte anzuzeigen. Es ist nur, dass ich bin nicht in der Lage, nur die erste Quelle und Schichten, die ich auf der Karte hinzugefügt haben. Ich hoffe, dass jemand da draußen einige Ideen zu diesem Problem hat. Vielen Dank.

Ich habe die beiden folgenden Anweisungen in einer Schleife verwendet, um Quellen und Ebenen zu entfernen.

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

Ich habe einen Test durchgeführt, um die erste Quelle und die Schichten manuell wie unten zu entfernen, aber es hat nicht funktioniert.

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

Allerdings funktioniert es auf die nächsten Quellen und Schichten.

+0

Ist die erste Quelle auch als Anfangs Map-Stil verwendet? Wenn ja, versuche einen leeren Hintergrund-Styl hinzuzufügen, dann alle deine anderen Quellen. – malcolm

Antwort

2

Meine beste Vermutung von dem, was Sie gepostet haben, ist, dass Sie die Ebene nicht entfernen können, solange noch Quellen an sie angehängt sind. Versuchen Sie, die Reihenfolge der beiden Aussagen Umkehren:

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