You have to use setStyle
for this. Look at the following plunk I made for you:
http://plnkr.co/edit/Up6x7H?p=preview
For more styling options, visit the mapbox api @ https://www.mapbox.com/mapbox.js/api/v2.0.1/l-path/
Here's the actual code snippet:
var linelayer = L.mapbox.featureLayer();
linelayer.loadURL('http://aftonbladet2.cartodb.com/api/v2/sql?format=GeoJSON&q=SELECT ST_MakeLine(CDB_LatLng(latitude, longitude) ORDER BY created_date DESC) as the_geom FROM instagram');
linelayer.addTo(map);
/* Need to wait for geoJSON to finish loading */
setTimeout(function(){
linelayer.setStyle({color: '#f00', weight: 10, opacity: 0.4});
},1000);
You'll need to wait for geoJSON from loadURL(...)
to finish loading before applying style. You have to find a better way to do that.
Update: You can add a bit more code and fetch geoJSON youself. This adds bulk but removes the need to use unpredictable setTimeout
.
var linelayer = L.mapbox.featureLayer();
linelayer.addTo(map);
/* Fetch geoJSON manually and set styles in a predictable fashion */
$.ajax({
url: 'http://aftonbladet2.cartodb.com/api/v2/sql?format=GeoJSON&q=SELECT ST_MakeLine(CDB_LatLng(latitude, longitude) ORDER BY created_date DESC) as the_geom FROM instagram',
datatype: 'jsonp',
success: function(data){
linelayer.setGeoJSON(data);
linelayer.setStyle({color: '#f00', weight: 10, opacity: 0.4});
}
});
Still can't believe mapbox doesn't accepts callbacks for async operations such as this!