D3.js is a JavaScript library for producing dynamic, interactive data visualizations in web browsers. It makes use of Scalable Vector Graphics, HTML5, and Cascading Style Sheets standards. The geoEckert3() function in d3.js is used to draw the Eckert III projection which is a pseudocylindrical projection that is neither conformal nor equal area. This projection was presented by Max Eckert in 1906 and is used primarily for world maps.
Syntax:
d3.geoEckert3()
Parameters: This method does not accept any parameters.
Returns: This method creates a Eckert3 projection from given JSON data.
Example 1: The following example makes Eckert3 projection of world with center at (0, 0) and no rotation.
HTML
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" /> < meta name = "viewport" content=" width = device -width, initial-scale = 1 .0" /> < script src = </ script > </ head > < body > < div style = "width:700px; height:600px;" > < center > < h3 style = "color:black" > Eckert III Projection of World </ h3 > </ center > < svg width = "700" height = "550" > </ svg > </ div > < script > var svg = d3.select("svg"), width = +svg.attr("width"), height = +svg.attr("height"); // geoEckert III projection // Center(0, 0) and no rotation var gfg = d3.geoEckert3() .scale(width / 1.5 / Math.PI) .rotate([-10, 0]) .center([0, -10]) .translate([width / 2, height / 2]) // Loading the json data // Used json file stored at // datageojson/master/world.json d3.json("https://raw.githubusercontent.com/" + "janasayantan/datageojson/master/world.json", function(data) { // Draw the map svg.append("g") .selectAll("path") .data(data.features) .enter().append("path") .attr("fill", "black") .attr("d", d3.geoPath() .projection(gfg) ) .style("stroke", "#ffff") }) </ script > </ body > </ html > |
Output:
Example 2: In the following example, we will make Eckert3 projection of world with center at (20, 20) and rotating 30 degree anticlockwise with respect to y axis.
HTML
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" /> < meta name = "viewport" content=" width = device -width, initial-scale = 1 .0" /> < script src = </ script > </ head > < body > < div style = "width:700px; height:600px;" > < center > < h3 style = "color:black" > Eckert III Projection of World </ h3 > </ center > < svg width = "700" height = "400" > </ svg > </ div > < script > var svg = d3.select("svg"), width = +svg.attr("width"), height = +svg.attr("height"); // geoEckert III projection // Center(20, 20) and rotating 30 // degree anti-clockwise var gfg = d3.geoEckert3() .scale(width / 1.5 / Math.PI) .rotate([-30, 0]) .center([20, 20]) .translate([width / 2, height / 2]) // Loading the json data // Used json file stored at // datageojson/master/world.json d3.json("https://raw.githubusercontent.com/" + "janasayantan/datageojson/master/world.json", function (data) { // Draw the map svg.append("g") .selectAll("path") .data(data.features) .enter().append("path") .attr("fill", "black") .attr("d", d3.geoPath() .projection(gfg) ) .style("stroke", "#ffff") }) </ script > </ body > </ html > |
Output: