首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地图上的D3.js圆

地图上的D3.js圆
EN

Stack Overflow用户
提问于 2014-12-21 19:24:43
回答 1查看 1.7K关注 0票数 0

我对编程非常陌生,正在尝试学习D3。我有法国地图,我可以让它出现在浏览器中。但是,我正在尝试基于csv文件在地图上显示圆。我不确定我的函数做错了什么……任何帮助/方向都是很好的。

下面是代码和文件的Cloud9。https://ide.c9.io/santiallende/d3-map-bubbles-france

EN

回答 1

Stack Overflow用户

发布于 2014-12-22 05:55:36

我不会装模作样的,你的代码一团糟。

您定义了4个不同的svg元素并将其附加到主体,然后创建了3个不同的投影。所有这些都是不必要的。只需遍历并删除所有冗余。

代码语言:javascript
复制
//Width and height
var w = 800;
var h = 350;

var canvas = d3.select("body").append("svg")
  .attr("width", w)
  .attr("height", h)

 d3.json("france.json", function(data) {

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

  //Define map projection
  var projection = d3.geo.mercator()
    .translate([400, 1200])
    .scale([1100]);

  //Define path generator
  var path = d3.geo.path()
    .projection(projection);

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

  //Load in cities data
  d3.csv("wineregions.csv", function(data) {

    canvas.selectAll("circle")
      .data(data)
      .enter()
      .append("circle")
      .attr("cx", function(d) {
        return projection([d.lon, d.lat])[0];
      })
      .attr("cy", function(d) {
        return projection([d.lon, d.lat])[1];
      })
      .attr("r", 5)
      .style("fill", "yellow")
      .style("opacity", 0.75);
  });
});

修复代码here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27588887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档