diff --git a/index.js b/index.js index fc34c30..3e8f7ed 100644 --- a/index.js +++ b/index.js @@ -198,11 +198,15 @@ function getOuterBoundaryPolygon(features) { -function stateOrDistrict(d) { +function stateOrDistrictOrLanguage(d) { if (typeof d.properties.district !== 'undefined') { return "district" } else { - return "state" + if (typeof d.properties.lang_name !== 'undefined') { + return "language" + } else { + return "state" + } } } @@ -220,12 +224,16 @@ function drawMap(world) { states.append("path") .attr("d", path) - .attr("class", d => stateOrDistrict(d)) - .attr("fill", d => district2lang.hasOwnProperty(d.properties.district) ? + .attr("class", d => stateOrDistrictOrLanguage(d)) + .attr("fill", function(d) { + if (stateOrDistrictOrLanguage(d) === "district") { + return district2lang.hasOwnProperty(d.properties.district) ? district2lang[d.properties.district].color : - state2lang[d.properties.st_nm].color) + state2lang[d.properties.st_nm].color + } + }) .each(function(d) { - if (stateOrDistrict(d) == "district") { + if (stateOrDistrictOrLanguage(d) === "district") { districtLang = district2lang.hasOwnProperty(d.properties.district) ? district2lang[d.properties.district] : state2lang[d.properties.st_nm]; districtLang.districts.push(d) } @@ -245,29 +253,28 @@ function drawMap(world) { let allLangs = [] - for (const [langId,lang] of Object.entries(languages)) { - let geojson = { - "type": "FeatureCollection", - "features": lang.districts - }; - - let outerBound = getOuterBoundaryPolygon(geojson.features) - outerBound["id"] = "lang" + lang.name - outerBound.properties["lang_name"]= lang.name - allLangs.push(outerBound); - console.log(JSON.stringify(outerBound, null, 2)) - - svg.append("path") - .datum(outerBound) - .attr("d", path) - .attr("fill", "none") - .attr("stroke", "red") - .attr("stroke-width", 2) - } - console.log(allLangs) + // for (const [langId,lang] of Object.entries(languages)) { + // let geojson = { + // "type": "FeatureCollection", + // "features": lang.districts + // }; + // + // let outerBound = getOuterBoundaryPolygon(geojson.features) + // outerBound["id"] = "lang" + lang.name + // outerBound.properties["lang_name"]= lang.name + // allLangs.push(outerBound); + + // svg.append("path") + // .datum(outerBound) + // .attr("d", path) + // .attr("fill", "none") + // .attr("stroke", "red") + // .attr("stroke-width", 2) + // } + // console.log(JSON.stringify(allLangs)) } -d3.json("india_with_districts.json").then(drawMap) +d3.json("india_with_districts_with_languages.json").then(drawMap)