Wednesday, July 3, 2024
HomeLanguagesJavascriptD3.js geoGinzburg8() Function

D3.js geoGinzburg8() Function

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 geoGinzburg8() function in d3.js is used to draw the Ginzburg VIII projection.

Syntax: 

d3.geoGinzburg8()

Parameters: This method does not accept any parameters.

Return Value: This method creates and returns Ginzburg8 projection from given JSON data.

Example 1: The following example draws the Ginzburg8 projection of the world with the center at (0,0) and 0 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="https://d3js.org/d3.v4.js"></script>
    
    <script src=
    </script>
</head
  
<body
    <div style="width:700px; height:500px;"
        <svg width="600" height="450"
        </svg
    </div
      
    <script>
        var svg = d3.select("svg"),
            width = +svg.attr("width"),
            height = +svg.attr("height");
  
        // Ginzburg8 projection
        // Center(0,0) with 0 rotation
        var gfg = d3.geoGinzburg8()
            .scale(width / 1.5 / Math.PI)
            .rotate([0,0])
            .center([0,0])
            .translate([width / 2, height / 2])
  
        // Loading the json data
        d3.json(
            "https://raw.githubusercontent.com/"
            +"janasayantan/datageojson/master/world.json",
            function(data){
                // Drawing the map
                svg.append("g")
                    .selectAll("path")
                    .data(data.features)
                    .enter().append("path")
                    .attr("fill", "DarkSlateGrey")
                    .attr("d", d3.geoPath()
                        .projection(gfg)
                    )
                    .style("stroke", "#ffff")
        })
    </script>
</body
  
</html>


Output:

Ginzburg8 projection of World with no rotation and centered at (0,0)

Example 2: The following example draws the Ginzburg8 projection of the world after customizing the center and 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="https://d3js.org/d3.v4.js"></script>
  
    <script src=
    </script>
</head
  
<body
    <div style="width:700px; height:600px;"
        <svg width="500" height="450"
        </svg
    </div
  
    <script>
        var svg = d3.select("svg"),
            width = +svg.attr("width"),
            height = +svg.attr("height");
  
        // Ginzburg8  projection
        // Center(0,0) and 90 degree
        // rotation w.r.t Y-axis
        var gfg = d3.geoGinzburg8()
            .scale(width / 1.3 / Math.PI)
            .rotate([90,0])
            .center([0,0])
            .translate([width / 2, height / 2])
  
        // Loading the json data
        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", "grey")
                    .attr("d", d3.geoPath()
                        .projection(gfg)
                    )
                    .style("stroke", "#ffff")
        })
    </script>
</body
  
</html>


Output:

Ginzburg8 projection with 90 degree rotation w.r.t  Y axis  and centered at (0,0)

Whether you’re preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, neveropen Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we’ve already empowered, and we’re here to do the same for you. Don’t miss out – check it out now!

Shaida Kate Naidoo
am passionate about learning the latest technologies available to developers in either a Front End or Back End capacity. I enjoy creating applications that are well designed and responsive, in addition to being user friendly. I thrive in fast paced environments. With a diverse educational and work experience background, I excel at collaborating with teams both local and international. A versatile developer with interests in Software Development and Software Engineering. I consider myself to be adaptable and a self motivated learner. I am interested in new programming technologies, and continuous self improvement.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments