0.5.1 • Public • Published


    NPM version GitHub last commit Travis CI Test coverage Dependencies status Dev Dependencies status License

    jMaps is a light Javascript API for reading Natural Earth's DB files. jMaps provides methods to extract data from the database and creates GeoJSON and XML SVG outputs.


    Extract data and create a GeoJSON object

    var jMaps = require('jmaps');
    // Create the object
    const jmap = jMaps();
    // Load the Natural Earth database:
    jmap.load('<path>, <ne_110m_admin_0_countries>')
    // Get a collection of maps (FeatureCollection)
    const maps = jmap.getCollection();
    // Get a map (Feature)
    const map = jmap.getFeature('feature number');

    The GeoJSON object looks like:

      bbox: [ ... ],
      type: 'FeatureCollection',
      features: [
        { type: 'Feature', properties: [Object], geometry: [Object] },
        { type: 'Feature', properties: [Object], geometry: [Object] }

    A Feature looks like:

      type: 'Feature',
      properties: { ... },
      geometry : {
        type: 'Polygon'
        coordinates: [ ... ]


    A Natural Earth's database is a folder that contains, at least, two files having the same name as the folder and with the suffix .dbf and .shp. For instance, Natural Earth's database ne_50m_admin_0_countries must contains the two files: ne_50m_admin_0_countries.dbf and ne_50m_admin_0_countries.shp.

    Create an XML SVG file

    const fs = require('fs');
    const jMaps = require('jmaps');
    const jmap = jMaps();
    jmap.load('<path>, <ne_110m_admin_0_countries>')
    // Transform the longitudes and latitudes, from a collection, to x, y plane coordinates
    const map = jmap.transform({scale: 1, projection: 'mercator', mirror: 'x'});
    // Create a File stream
    const fd = fs.createWriteStream('path/to/svg/file', {flags: 'w'});
    // Fill the write stream
    jmap.toSVG(map, fs);

    It creates an XML file that looks like:

    <svg version="1.1" xmlns="" xmlns:xlink="">
      <g transform="translate(0, 0) scale(1, 1)">
        <path id="" class="land" d="...."></path>

    A Feature produces an XML SVG file with one path while a FeatureCollection produces an XML SVG file with a multitude of paths.

    You can enrich your XML files with information extracted from the property properties of a Feature object.


    This module implements four methods:

    • getFeature(feature number),
    • getCollection(),
    • transform(options),
    • toSVG(GeoJSON object, write file stream).


    This method extracts one Feature from Natural Earth's database and returns a Javascript GeoJSON object.

    This method requires one argument. Its is a number - the Feature number. It starts from 1.


    This method extracts a FeatureCollection from Natural Earth's database and returns a Javascript GeoJSON object. A FeatureCollection is a set of Feature.


    This methods converts the longitude and latitude coordinates of the GeoJSON object to x, y plane coordinates. It returns the transformed Javascript GeoJSON object.

    This methods extracts a collection from the loaded database, converts it and returns the converted GeoJSON object.

    The options argument is optional. If nothing is provided, the default options are:

    { scale: 1, projection: none, mirror: 'none' }

    scale can be any number from 1 to 'infinity'.

    projection can be none or mercator.

    mirror can be none, x, y, xy.

    toSVG(GeoJSON, fd)

    This method generates XML SVG data from a collection or a transformed collection.

    This method requires two arguments. A GeoJSON object (collection) and fd, a file write stream handler.




    npm i jmaps

    DownloadsWeekly Downloads






    Unpacked Size

    31.3 kB

    Total Files


    Last publish


    • jclo