This example shows how to create the drop shadow effect in a map using Canvas.
Since the Canvas object already has the tools to do that, the code is really simple.
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script src="http://d3js.org/topojson.v0.min.js"></script>
<script>
var width = 960,
height = 500;
var projection = d3.geo.mercator()
.scale(800)
.rotate([80, -20, 0]);
var canvas = d3.select("body").append("canvas")
.attr("width", width)
.attr("height", height);
var context = canvas.node().getContext("2d");
var path = d3.geo.path()
.projection(projection)
.context(context);
d3.json("https://cdn.rawgit.com/mbostock/4090846/raw/8a7f176072d508218e120773943b595c998991be/world-50m.json", function(error, data) {
var land = topojson.object(data, data.objects.land);
context.fillStyle='#ccc';
context.strokeStyle = '#aaa';
context.save();
context.beginPath();
context.shadowBlur=5;
context.shadowColor='#000';
context.shadowOffsetX=5;
context.shadowOffsetY=5;
path(land);
context.fill();
context.restore();
context.stroke();
});
</script>