我正在构建一个D3美国等值区域地图,我需要从asmx webservice绑定地图数据(输出为Json)。
d3.queue()
.defer(d3.json, "https://d3js.org/us-10m.v1.json")
.(d3.json,'Geodata.asmx/GetGeodtls',
function (error, jsondata) {
(unemployment.set((jsondata.map(function (d) { return d.ZIP_CODE })), +jsondata.map(function (d) { return d.TRV })));
})
.await(ready);
function ready(error, us) {
if (error) throw error;
svg.append("g")
.attr("class", "counties")
.selectAll("path")
.data(topojson.feature(us, us.objects.counties).features)
.enter().append("path")
.attr("fill", function (d) { alert(d.TRV); return color(d.TRV = unemployment.get(d.ZIP_CODE)); })
.attr("d", path)
.append("title")
.text(function (d) { return d.TRV + "%"; });
svg.append("path")
.datum(topojson.mesh(us, us.objects.states, function (a, b) { return a !== b; }))
.attr("class", "states")
.attr("d", path);
}
如何继续,任何想法?
然后我做了类似下面的事情
d3.queue()
.defer(d3.json, "https://d3js.org/us-10m.v1.json")
.defer(d3.json, 'Geodata.asmx/GetGeodtls')
.await(ready);
function ready(error, us,un) {
if (error) throw error;
un.forEach(function (d) {
//alert("foreach" +d.ZIP_CODE);
unemployment.set(d.ZIP_CODE, +d.TRV);
});
svg.append("g")
.attr("class", "counties")
.selectAll("path")
.data(topojson.feature(us, us.objects.counties).features)
.enter().append("path")
.attr("fill", function (d) { return color(d.TRV = unemployment.get(d.ZIP_CODE)) ? color(d.TRV = unemployment.set(d.ZIP_CODE)) :"darkgreen" })
.attr("d", path)
.append("title")
.text(function (d) { return d.TRV + "%"; });
svg.append("path")
.datum(topojson.mesh(us, us.objects.states, function (a, b) { return a !== b; }))
.attr("class", "states")
.attr("d", path);
我在这个unemployemnt.set(d.ZIP_CODE,+ d.TRV)中什么都没得到,我只想在地图中使用ZIP_CODE和TRV作为我的数据集。