从D3中删除地图中的形状

时间:2014-05-02 22:09:34

标签: javascript map d3.js topojson

我正在绘制一张地图,D3.js从topojson文件中导入它。

为了绘制它,我使用以下代码:

d3.json(input_file, function(error, data) {
  var units = topojson.feature(data, data.objects.countries),
  view = d3.select("#map_view");
  // ... SETUP OF THE PROJECTION AND PATH
  view.selectAll("path")
    .data(units.features)
    .enter()
    .append("path")
    .attr("d", path);
}

此代码将绘制输入topojson文件中定义的所有形状。 现在我想删除一些我不需要的异常小岛,它们位于球坐标的指定区域。

由于现在units对象定义了绘制的所有内容,我尝试按以下方式删除形状:

我在要素列表中找到国家/地区的索引,并在所需区域中找到弧的索引,并从数组中删除弧:

var coordinates = units.features[5].geometry.coordinates,
    outlierId = 23;
coordinates.splice(outlierId, 1);

现在,当我检查这个国家的坐标数组时,我看到在排除区域中没有坐标的弧。

但它仍然在地图上绘制,尽管修改后的units对象进入.data()方法。看起来有关形状的信息来自其他地方。怎么会这样?

0 个答案:

没有答案