This is a demo of the Customizable Wagner, using the d3-geo scripts with
d3.
.
For more information about Wagner’s transformation method, read this blogpost or the notes at the Wagner Variations Generator (WVG-7) or the article Das Umbeziffern – The Wagner Transformation Method.
<div id="svgs" class="svg-container"></div>
<script>
var width = 1000,
height = 660;
var projection = d3.
.scale(170)
.translate([width / 2, height / 2.2])
.precision(.1)
var path = d3.geoPath()
.projection(projection);
var graticule = d3.geoGraticule()
.step([10,10]);
var svg = d3.select("#svgs").append("svg")
.attr("id", "image_PID_")
.attr("preserveAspectRatio", "xMinYMin meet")
.attr("viewBox", "0 0 1000 660")
.classed("svg-content", true)
.append("g");
svg.append("defs").append("path")
.datum({type: "Sphere"})
.attr("id", "sphere")
.attr("d", path);
svg.append("use")
.attr("class", "stroke")
.attr("xlink:href", "#sphere");
svg.append("use")
.attr("class", "fill")
.attr("xlink:href", "#sphere");
svg.append("path")
.datum(graticule)
.attr("class", "graticule")
.attr("d", path);
d3.json("world-50m.json").then(function(json) {
world = json;
svg.insert("path", ".graticule")
.datum(topojson.feature(world, world.objects.land))
.attr("class", "land")
.attr("d", path);
});
d3.select('#svg').style("height", height + "px");
</script>
Released under the GNU General Public License, version 3.
map-projections.net: Home · Legal Disclosure · Privacy Policy