Sha256: 871305b320f298b97a324e68bc89a22bbf15707d0fc3448a012e17d5d2951faf

Contents?: true

Size: 1.59 KB

Versions: 25

Compression:

Stored size: 1.59 KB

Contents

require("../../test/env");
require("../../d3");
require("../../d3.geo");

var fs = require("fs"),
    util = require("util"),
    Canvas = require("canvas");

var w = 1920,
    h = 1080;

var projection = d3.geo.albersUsa()
    .scale(2000)
    .translate([w / 2, h / 2]);

var path = d3.geo.path()
    .projection(projection);

var canvas = new Canvas(w, h),
    context = canvas.getContext("2d");

context.antialias = "none";
context.lineWidth = 8;
context.lineJoin = "round";

d3.json(__dirname + "/../data/us-counties.json", function(collection) {
  renderAll("stroke");
  renderAll("fill");
  fs.writeFile("us-counties.png", canvas.toBuffer());

  function renderAll(action) {
    collection.features.forEach(function(feature) {
      var re = /[MLZ]/g,
          d = path(feature),
          i = 0,
          m;

      context[action + "Style"] = "#" + pad((+feature.id).toString(16));
      context.beginPath();
      re.lastIndex = 1;
      while (m = re.exec(d)) render(m.index);
      render();
      context[action]();

      function render(j) {
        switch (d.charAt(i)) {
          case "M": {
            var p = d.substring(i + 1, j).split(",").map(Number);
            context.moveTo(p[0], p[1]);
            break;
          }
          case "L": {
            var p = d.substring(i + 1, j).split(",").map(Number);
            context.lineTo(p[0], p[1]);
            break;
          }
          case "Z": {
            context.closePath();
            break;
          }
        }
        i = j;
      }
    });
  }
});

function pad(s) {
  return s.length < 6 ? new Array(7 - s.length).join("0") + s : s;
}

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
picky-statistics-4.5.0 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.4.2 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.4.1 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.4.0 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.3.2 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.3.1 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.3.0 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.2.4 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.2.3 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.2.2 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.2.1 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.2.0 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.1.0 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.0.9 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.0.8 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.0.7 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.0.6 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.0.5 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.0.4 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js
picky-statistics-4.0.3 lib/picky-statistics/application/javascripts/d3/examples/node-canvas/us-counties.js