2

我正试图在这张乌克兰地图上的行政区域上贴上标签。Chrome 开发者工具告诉我,它们以正确的标签和坐标存在。尽管如此,它们并没有出现在地图上。

地图

我使用的代码:

d3.json('ukraine.geojson', function(data){


var group = canvas.selectAll('g')
    .data(data.features)
    .enter()
    .append('g')

var projection =  d3.geo.mercator().scale([2400]).translate([-900,2650]);
var path = d3.geo.path().projection(projection);

var areas = group.append('path')
         .attr('d',path)
         .attr('class','area')
         .attr('fill','steelblue');


group.append('text')
     .attr('x', function(d){ return path.centroid(d)[0];})
     .attr('y', function(d){ return path.centroid(d)[1];})
     .attr('text',function(d){return d.properties.NAME_1;})
     .style("font-size","14px");

有谁知道,为什么他们没有出现在地图上?

4

1 回答 1

1

如果您将输出更改为:

<text x="414.512507938402" y="272.3826318168442" text="Cherkasy" style="font-size: 14px;"></text>

至:

<text x="414.512507938402" y="272.3826318168442" style="font-size: 14px;">Cherkasy</text>

您将看到文本出现。

如果您查看您的代码,您可以删除该.attr('text',function(d){return d.properties.NAME_1;})部分并使用类似.text(function(d) {return d.properties.NAME_1;});.

于 2014-04-07T17:42:11.070 回答