D3.js geoEckert3() Function
Last Updated :
18 Sep, 2020
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
+ "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
+ "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:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...