土地没有理由消失

时间:2017-11-26 22:58:43

标签: javascript d3.js

我正在制作一个可以旋转的地球仪。我需要把国家和土地拖到一起(是的,我知道,我只能使用国家,但我需要两者)。但如果我这样做,土地消失了,我不知道什么是错的。但是,如果我评论#34;国家!",这段代码完美无缺。 它是第一次使用它,也许我在使用topojson时出错了?

var path = d3.geoPath().projection(projection);
svg.append("path").datum(graticule).attr("class", "graticule").attr("d", path);

//Land
d3.json("https://rawgit.com/jonataswalker/map-utils/master/data/json/world-110m.json", function(error, topo) {
  if (error) throw error;    
  var land = topojson.feature(topo, topo.objects.land);
      svg.selectAll("path.foreground").data([land]).enter().append("path").attr("d", path).attr("class", "foreground");
});

//Countries!
d3.json("https://rawgit.com/Bramsiss/Globe/master/world-counries.json", function(collection) {
var countries = svg.selectAll("path").data(collection.features).enter().append("path").attr("d", path).attr("class", "country");  
});

//drag
var λ = d3.scaleLinear().domain([0, width]).range([-180, 180]);
var φ = d3.scaleLinear().domain([0, height]).range([90, -90]);    
    var drag = d3.drag().subject(function() {
        var r = projection.rotate();
        return {
      x: λ.invert(r[0]),
      y: φ.invert(r[1])
    };
  }).on("drag", function() {
    projection.rotate([λ(d3.event.x), φ(d3.event.y)]);
    svg.selectAll(".foreground").attr("d", path);    
  });  
  svg.call(drag);

0 个答案:

没有答案