郡の SVG ファイルとそれぞれのデータの csv を使用して、クロロプレス マップを作成しようとしています。私は D3 が初めてで、geoJSON を使用した例に取り組んでいます (Scott Murray に感謝します)。この例では、次のようにデータを形状に関連付けます。
d3.json("us-states.json", function(json) {
//Merge the ag. data and GeoJSON
//Loop through once for each ag. data value
for (var i = 0; i < data.length; i++) {
var dataState = data[i].state; //Grab state name
var dataValue = parseFloat(data[i].value); //Grab data value, and convert from string to float
//Find the corresponding state inside the GeoJSON
for (var j = 0; j < json.features.length; j++) {
var jsonState = json.features[j].properties.name;
if (dataState == jsonState) {
//Copy the data value into the JSON
json.features[j].properties.value = dataValue;
//Stop looking through the JSON
break;
}
}
}
//Bind data and create one path per GeoJSON feature
svg.selectAll("path")
.data(json.features)
.enter()
.append("path")
.attr("d", path)
.style("fill", function(d) {
//Get data value
var value = d.properties.value;
if (value) {
//If value exists…
return color(value);
} else {
//If value is undefined…
return "#ccc";
}
});
しかし、これをsvgに適応させるのに苦労しています。パスを作成する必要はありません-パスは既に存在しますが、基本的にどのように書くのでしょうか: "if data.County == path id, bind that row's data to the path" ?
どんな助けでも大歓迎です!!