我有以下geojson文件代表印度的每个州,作为一个简单的例子,一个声明就是这样(为简洁起见,删除了坐标):
{
"type": "FeatureCollection",
"features": [
{ "type": "Feature", "properties": {}, "id":"AndhraPradesh", "geometry": { "type": "MultiPolygon", "coordinates": [ ......
我正在尝试让生成的SVG的路径具有其geojson形状的id,以便我有类似的东西:
<svg width="600" height="600"><g id="india"><path id="AndhraPradesh" d="..."></path>
以下内容及其变体似乎不起作用,我找不到将路径与id明确关联的示例,因此我不确定秘密可能是什么。
var w = 600;
var h = 600;
var proj = d3.geo.mercator();
var path = d3.geo.path().projection(proj);
var t = proj.translate(); // the projection's default translation
var s = proj.scale() // the projection's default scale
var map = d3.select("body").append("svg")
.attr("width", w)
.attr("height", h)
.call(initialize);
var india = map.append("g")
.attr("id", "india");
d3.json("india_states.geojson", function (json) {
india.selectAll("path")
.data(json.features)
.enter().append("path")
.attr("d", path)
.attr("id", id)
});
任何帮助都非常感激。
答案 0 :(得分:3)
这应该可以解决问题:
.attr("id", function(d) { return d.id; })
返回与路径关联的数据的id
字段。