sane-topojson

Ready-to-use multi-layer topojson files

Usage no npm install needed!

<script type="module">
  import saneTopojson from 'https://cdn.skypack.dev/sane-topojson';
</script>

README

sane-topojson

npm version

Build Status Dependency Status devDependency Status

Ready-to-use multi-layer topojson files.

--> Go to Natural Earth CHANGELOG

This project encompasses the three step required to turn Natural Earth Data into topojson files.

These are:

  • npm run wget: download to Natural Earth shapefiles and unzips them
  • npm run shp2geo: clip and convert shapefiles into geojson files
  • npm run geo2topo add properties and convert the geojson files into topojson files

Usage

npm install sane-topojson

and import/require the index.js or the one of the dist/ files.

Layers

A topojson with the objects field:

{
    coastlines: {
        type: '',
        geometries: []
    },
    countries: {
        type: '',
        geometries: [
            {type: '', id: '', arcs: [], properties: {ct: [lon, lat]}},
            // ...
        ]
    },
    lakes: {
        type: '',
        geometries: []
    },
    land: {
        type: '',
        geometries: []
    },
    ocean: {
        type: '',
        geometries: []
    }
    rivers: {
        type: '',
        geometries: []
    }
    subunits: {
        type: '',
        geometries: [
            {type: '', id: '', arcs: [], properties: {ct: [lon, lat], gu: 'ISO-3'}},
            // ...
        ]
    }
}

where id is the ISO-3 code for the countries layer and two-letter postal code for the subunits layer. In properties, ct is the longitude and latitude coordinates (in degrees East and degrees North respectively) of the centroid of the geometry's largest polygon in area and gu stands for the "governing unit" for subunits features (i.e. the country where the subunit is).

Development dependencies

Configuration

In ./config.json:

  • resolutions: array of resolutions to output
  • scopes: array of scopes to output

sane-topojson will output resolution.length times scopes.length topojson files.

  • vectors: array of layers making up each topojson file

Credits

2019 Étienne Tétreault-Pinard. MIT License

JavaScript Style Guide