Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A JavaScript mapping library for the National Park Service, built as a Leaflet plugin.
JavaScript CSS HTML


Circle CI

Extends Leaflet to include functionality and a look-and-feel built specifically for the National Park Service.

This library is under active development, so please help test and report issues.

NPMap Builder

You may also want to take a look at NPMap Builder. It is a graphical interface that walks through the process of building a map with NPMap.js, step-by-step.


Heavily inspired (cough cough) by Mapbox.js, and, of course, built on the great Leaflet library. Standing on the shoulders of giants. Also, many thanks to the authors of all the great plugins used in/by the library (take a look at for a list).


NPMap.js is versioned using semantic versioning. This means that releases are numbered: major.minor.patch and follow these guidelines:

  • Breaking backward compatibility bumps the major (and resets the minor and patch to zero)
  • New additions that don't break backward compatibility bumps the minor (and resets the patch to zero)
  • Bug fixes and miscellaneous changes bumps the patch

2.0.0 was the first official NPMap.js version. All versions < 2.0.0 are part of the original NPMap JavaScript library, which has now been deprecated.


Hosted version

NPMap.js is hosted on the National Park Service's content delivery network. If you are a National Park Service employee, partner, or contractor, feel free to load the library directly from there. You can access hosted versions at You should replace "major.minor.patch" with the number of the version you want to access (e.g. 2.0.0).


You must have node.js installed to run the build. After installing node.js:

git clone
cd npmap.js
npm install

Install the Grunt command line tool (do this once as an admin user after installing node.js):

npm install -g grunt-cli

Copy secrets.sample.json to a file called secrets.json for development and testing:

cp secrets.sample.json secrets.json

Then use Grunt to build the library:

grunt build

Internally, the Grunt task uses browserify to combine dependencies. It is installed locally, along with other required packages, when you run npm install. The build task also uses uglify and cssmin to create minified versions of the library's CSS and JavaScript in dist/.


NPMap.js uses the Mocha JavaScript test framework, with the expect.js assertion library, and PhantomJS to run the tests. You can run the tests with either of the following commands:

grunt test


npm test

We are working to expand test coverage for the library.


Take a look at the API docs.


Simple and targeted examples reside in the examples directory. This is a great starting point if you're new to NPMap.js.


You can get in touch with the NPMap team by contacting us via Twitter (@npmap) or email ( We are happy to help with any questions. Feedback is welcome as well!

Something went wrong with that request. Please try again.