I'm making a cloropleth map with geoJSON and Leaflet. Right now each year has a separate geoJSON file and I load each of them as below:
function loadGeoJSON(data) {
var json = null;
$.ajax({
async: false,
global: false,
url: data,
dataType: "json",
success: function (data) {
json = data;
}
});
return json;
}
var ccc2 = loadGeoJSON("t2015.geojson");
var t2015 = L.geoJson(ccc2, {
style: style,
onEachFeature: onEachFeature
});
map.addLayer(t2015);
var ccc3 = loadGeoJSON("t2014.geojson");
var t2014 = L.geoJson(ccc3, {
style: style,
onEachFeature: onEachFeature
});
The geoJSON are of countries and are the same each year. I would like to combine the geoJson files into one with each feature having the attributes: 2014_1, 2014_2, 2014_3, 2015_1, 2015_2, 2015_3 etc. Is it possible to load one file with all years and break it into variables which only has the attributes from a single year (i.e. 2014_1, 2014_2, 2014_3) so they can be separate layers on the map?
EDIT: SAMPLE COMBINED GEOJSON (note: geographies are not in full)
{ "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, "features": [ { "type": "Feature", "properties": { "FIPS_CNTRY": "AG", "CNTRY_NAME": "Algeria", "2013": 9698, "2013_2": 9545, "2014": 266, "2014_2": 52918, "2015": 91, "2015_2": 842 }, "geometry": { "type": "Polygon", "coordinates": [ [ -5.152134895324707, 30.180469512939453 ], [ -5.139167308807373, 30.192359924316406 ], [ -5.080972671508789, 30.262359619140625 ], [ -5.048055648803711, 30.316665649414063 ], [ -5.029167175292969, 30.359165191650391 ], [ -5.010833740234375, 30.393886566162109 ]]}}, { "type": "Feature", "properties": { "FIPS_CNTRY": "AL", "CNTRY_NAME": "Albania", "2013": 7326, "2013_2": 1245, "2014": 834, "2014_2": 135, "2015": 785, "2015_2": 134 }, "geometry": { "type": "Polygon", "coordinates": [ [ 20.791923522949219, 40.431541442871094 ], [ 20.787220001220703, 40.394721984863281 ], [ 20.758609771728516, 40.311943054199219 ], [ 20.73680305480957, 40.307220458984375 ], [ 20.714302062988281, 40.270099639892578 ], [ 20.721246719360352, 40.225135803222656 ]] }}, { "type": "Feature", "properties": { "FIPS_CNTRY": "AN", "CNTRY_NAME": "Andorra", "2013": 6698, "2013_2": 9578, "2014": 24266, "2014_2": 546, "2015": 425, "2015_2": 3145 }, "geometry": { "type": "Polygon", "coordinates": [ [ 1.445833206176758, 42.601943969726563 ], [ 1.486527681350708, 42.650413513183594 ], [ 1.559722185134888, 42.655967712402344 ], [ 1.698333263397217, 42.626106262207031 ], [ 1.738610982894898, 42.616386413574219 ], [ 1.78171968460083, 42.569961547851563 ]]}}, { "type": "Feature", "properties": { "FIPS_CNTRY": "AU", "CNTRY_NAME": "Austria", "2013": 2592, "2013_2": 311, "2014": 66, "2014_2": 511, "2015": 242, "2015_2": 8664 }, "geometry": { "type": "Polygon", "coordinates": [ [ 10.471235275268555, 46.871353149414063 ], [ 10.488205909729004, 46.935993194580078 ], [ 10.429998397827148, 46.984161376953125 ], [ 10.390763282775879, 47.002567291259766 ], [ 10.350624084472656, 46.991241455078125 ], [ 10.323331832885742, 46.955551147460938 ]] }}, ] }
L.geoJson
several times (once per layer / year / quarter?) with a differentonEachFeature
function each time (so that it reads the appropriate property key).