0.5.3 • Published 2 years ago

jmaps v0.5.3

Weekly downloads
1
License
MIT
Repository
github
Last release
2 years ago

jMaps

NPM version GitHub last commit Github workflow Test coverage 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.

Usage

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: [ ... ]
  }

Nota:

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="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g transform="translate(0, 0) scale(1, 1)">
    <path id="" class="land" d="...."></path>
  </g>
</svg>

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.

API

This module implements four methods:

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

getFeature(n)

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.

getCollection()

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

transform(options)

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.

License

MIT.

0.5.3

2 years ago

0.5.2

2 years ago

0.5.0

5 years ago

0.5.1

5 years ago

0.4.2

7 years ago

0.4.1

7 years ago

0.4.0

9 years ago

0.3.2

9 years ago

0.3.1

9 years ago

0.3.0

9 years ago

0.2.2

9 years ago

0.2.1

9 years ago

0.2.0

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago