TypeScript icon, indicating that this package has built-in type declarations

4.0.0 • Public • Published


Build Status Coverage Status npm version

GeoStyler Style Parser implementation for Mapserver Mapfiles


node v10+

And install it with npm:

npm i geostyler-mapfile-parser

How to use

If the aim is to transform a Mapfile to another format, your Mapfile must contains only one LAYER per file.


import * as fs from 'fs';
import MapfileParser from 'geostyler-mapfile-parser';

const parser = new MapfileParser();

// Load a Mapfile file
const mapfile = fs.readFileSync('./mapfiles_folder/', 'utf8');

const { output: geostylerStyle } = await parser.readStyle(mapfile);

Writing a Mapfile from a Geostyler-Style object is currently not possible.

Command line

To transforms a file to another Geostyler style, use Geostyler-cli Short example of usage - Install and transform a Mapfile to a QGIS qml file, specifying a custom directory for symbols:

npm install -g geostyler-cli
geostyler -s sld -t qgis -o input.qml mapfile-symbols-path=./symbols.sym

Specify a symbols.sym file

If a symbolset tag is defined in your mapfile, this link will be followed to read symbols. If it's not the case a symbols.sym should be located from where you call the transformation.

You can set the default path with:

const parser = new MapfileParser();
parser.symbolsPath = '<a/path/to/symbols.sym>'

Alternatively, if you use this library through a script, you can set the path by adding the command line option: mapfile-symbols-path=.

Run tests

  npm install
  npm run test

Run MapServer to display features styles

Be sure you have:

Then run simply: make run

You can now show predefined mapfiles at this url:


Set the layers param to display other layers (from layers defined in /data/mapfiles).

Funding & financial sponsorship

Maintenance and further development of this code can be funded through the GeoStyler Open Collective. All contributions and expenses can transparently be reviewed by anyone; you see what we use the donated money for. Thank you for any financial support you give the GeoStyler project 💞

Package Sidebar


npm i geostyler-mapfile-parser

Weekly Downloads






Unpacked Size

381 kB

Total Files


Last publish


  • chrismayer
  • simonseyock
  • marcjansen
  • terrestris-info
  • kaivolland
  • ahennr
  • dnlkoch
  • buehner
  • annarieger
  • jansule
  • hwbllmnn
  • lukaslohoff
  • mholthausen
  • bgerber
  • sgoetsch
  • jorzekowsky
  • hblitza
  • jweskamm
  • unraveler