TopoJSON ‹‹ Eigenschaften ›› Feld, wie erhält man Werte mit d3.js?

Ich habe TopoJSON-Datei, es sieht so aus:

{"type":"Topology","transform":{"scale":[0.03600360003702599,0.0040674580654071245],"translate":[-179.9999967702229,41.18684289776669],"objects":{"country":{"type":"GeometryCollection","geometries":[{"type":"Polygon","arcs":[[0]],"properties":{"AREA":29809500,"PERIMETER":21822.4,"region":"XYZ"}},…

Ich möchte Werte von Eigenschaften ("AREA", "PERIMETER", "region") in meinem d3.js-Code verwenden. Ich habe versucht, einige Werte zu ermitteln, aber es hat nicht funktioniert:

d3.json("map_topo.json", function(error, map) {
svg.append("path")
.datum(topojson.object(map, map.objects.country).geometries)
.attr("d", path)
.style("fill", function(d) {
if (d.properties.region == "XYZ")
 {return "red"}
else {return "gray"}
})  

Was mache ich falsch?

UPD: Problem wurde mit Hilfe von @ChrisWilson gelöst, Problem wurde angehängtein Pfad, anstatt zu wählenALLES Pfade. Arbeitscode (für topojson.v0.js):

d3.json("map_topo.json", function(error, map) {
svg.selectAll("path")
.data(topojson.object(map, map.objects.country).geometries)
.enter().append("path")
.attr("d", path)
.style("fill", function(d) {
if (d.properties.region == "XYZ")
{return "red"}
else {return "gray"}
}); 

Für topojson.v1.js verwendentopojson.feature Methode (siehe Kommentare unten).

Antworten auf die Frage(1)

Ihre Antwort auf die Frage