1

間違った道に進む前に、これが完全に可能かどうかを説明できますか?

次のコードがあります。

var path = d3.geo.path();
var svg = d3.select("#d3Map").append("svg");
var countries = svg.append("g").attr("id", "countries");
d3.json("scripts/plugins/d3-master/examples/data/world-countries.json", function (json) {
  d3.select("svg")
    .selectAll("path")
    .data(json.features)
    .enter()
    .append("path")
    .attr("d",d3.geo.path().projection(d3.geo.equirectangular().scale(1500)));
});

確かに、世界の国を読み込んで表示します。完璧に動作します。

しかし、私ができるようにしたいのは、それらの国の一握りの色を変更することです.

生成された SVG を見ると、国の ID はないようです (JSON ファイルには 'name' 属性がありますが)。

次のようなことを行う方法はありますか:

ハイライト(国名,RGB)

または、ここで間違ったツールを使用していますか?

4

1 に答える 1

2

なぜだめですか

d3.select("svg")
  .selectAll("path")
  .data(json.features)
.enter()
  .append("path")
  .attr("d",d3.geo.path().projection(d3.geo.equirectangular().scale(1500)))
  .attr("fill", "#c00")// <- Set color like this, or pass a function
// Or
  .attr("id", function(feature) {
    /* something like: return feature.properties.id; */
  })
// Or
  .attr("class", function(feature) {
    return feature.population > 1e6 ? 'populous' : 'rural';
  });
于 2012-11-08T22:29:54.237 に答える