Friday, April 3, 2026
HomeLanguagesJavascriptD3.js geoNaturalEarth() Function

D3.js geoNaturalEarth() Function

The function geoNaturalEarth() is used to return the Natural Earth projection.

Syntax :

d3.geoNaturalEarth()

Parameters: This method does not accept any parameters.

Return Value: This method creates and returns geoNaturalEarth() projection from given JSON data.

Example 1: The following example creates geoNaturalEarth() projection of the world with the 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="https://d3js.org/d3.v4.js"></script> 
  
    <script src= 
    </script> 
</head> 
  
<body> 
    <div style="width:700px; height:600px;"> 
        <svg width="700" height="550"> 
        </svg> 
    </div> 
  
    <script> 
        var svg = d3.select("svg"), 
            width = +svg.attr("width"), 
            height = +svg.attr("height"); 
  
        // Natural Earth projection 
        // Center(0,0) and no rotation 
        var gfg = d3.geoNaturalEarth()
            .scale(width / 1.5 / Math.PI) 
            .rotate([0, 0]) 
            .center([0, 0]) 
            .translate([width / 2, height / 3]) 
  
        // Loading the json data 
        d3.json("https://raw.githubusercontent.com/"
            +"epistler999/GeoLocation/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 create geoNaturalEarth() projection of the world with the center at (30, 0) and rotating 30 degrees anti-clockwise 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="https://d3js.org/d3.v4.js"></script> 
    <script src= 
    </script> 
</head> 
  
<body> 
    <div style="width:700px; height:600px;"> 
        <svg width="700" height="550"> 
        </svg> 
    </div> 
  
    <script> 
        var svg = d3.select("svg"), 
            width = +svg.attr("width"), 
            height = +svg.attr("height"); 
  
        // geoNaturalEarth() projection 
        // Center(30, 0) and 30 degree rotation 
        var gfg = d3.geoNaturalEarth()
            .scale(width / 1.5 / Math.PI) 
            .rotate([-30, 0]) 
            .center([30, 0]) 
            .translate([width / 2, height / 2]) 
  
        // Loading the json data 
        // Used json file stored at 
        // https://raw.githubusercontent.com/epistler999/ 
        // GeoLocation/master/world.json
        d3.json("https://raw.githubusercontent.com/"
            +"epistler999/GeoLocation/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:

RELATED ARTICLES

Most Popular

Dominic
32512 POSTS0 COMMENTS
Milvus
131 POSTS0 COMMENTS
Nango Kala
6886 POSTS0 COMMENTS
Nicole Veronica
12006 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12100 POSTS0 COMMENTS
Shaida Kate Naidoo
7015 POSTS0 COMMENTS
Ted Musemwa
7259 POSTS0 COMMENTS
Thapelo Manthata
6971 POSTS0 COMMENTS
Umr Jansen
6960 POSTS0 COMMENTS