Crater Lake National Park


Digital maps for the National Park Service


The current public (and stable) release of the NPMap library is 1.0.0, although it is still under active development.

In general, you should always use the latest stable version of NPMap in your production maps. You can use the latest and greatest by loading the development version, but be aware that it likely has bugs and is neither stable nor fully-documented.

1.x.x Dev

Link to hosted version

The next release will solidify and build on the 1.0.0 release. It will also add some new tools to the library.


  • Ability to perform client-side buffer operations. This capability will be used as the foundation for a new set of client-side spatial query capabilities.
  • Geolocation, search, print, and share tools.
  • Work on touch events to ensure NPMap works well on mobile devices.
  • New InfoBox design and solidification of InfoBox API.
  • Support and honor min/max zoom levels set on layer objects. Also support zoomToBounds method and autoZoomToBounds properties on layer configs.
  • Solidify shapes API. Still need to think through this problem.


Link to hosted version


  • Introduced six new layer handlers, including CartoDb, GeoJson, Json, Tiled, Xml, and Zoomify.
  • Solidification of the API and full documentation of the public classes, methods, and helpers.
  • The library no longer depends on jQuery. This means that you will need to manually load jQuery into your page if you'd like to use it in any custom code.
  • The InfoBox now uses mustache style templating supported by the Underscore library. Templating makes it easier to configure dynamic builds of HTML for display in the InfoBox.
  • Partial tests, using the behavior-driven development framework, Jasmine, for the NPMap library. You can view the tests for this release at We'll continue building the tests out in subsequent releases.
  • Support for specifying base API application keys (when using either the bing or google base APIs) in the NPMap.config object. This allows those outside of the NPS to use NPMap to build their maps.
  • Upgraded the modestmaps base API to use 6.0.0 beta 5 and Wax 2.0.1. Also added support for easey.
  • Migrated all AJAX calls to the reqwest library.
  • Migrated all animations to the Morpheus library.
  • Introduced Leaflet as a new base API option.
  • Added a modules interface that unifies how NPMap's modules present information. This interface can also be used by custom code.
  • Added a fullscreen tool.
  • New events system that eliminates differences in how base APIs present mouse and map events. This system also makes it easier to add custom event-driven functionality to a map.
  • NPMap now uses the open source Bean library to handle all mouse and touch events.


  • Better detection for NPMap's dependencies. If any of the dependencies is loaded into the web page before NPMap loads, NPMap will detect and use the preloaded library.
  • Re-architected the modular hierarchy of the library to be more intuitive, flexible, and efficient.
  • The attribution control now updates properly when baseLayers and layers are added, removed, hidden, and shown via the API.


  • The Esri base API has been deprecated.
  • The NativeVectors layer handler has also been deprecated. Its functionality has been superseded by the new Json layer handler.

0.7.2 April 9, 2012

Link to hosted version

This release built upon the new functionality introduced in the 0.7.0 release, and included a few new project-driven enhancements:

  • Solidification of the API. There are still some inconsistencies in the methods and properties exposed by NPMap's base APIs, layer handlers, modules, and classes. This release started to address these inconsistencies.
  • This release also cleaned up CSS inheritance, ensuring that embedded NPMap web maps only inherit certain styles from the web page they are embedded in.
  • Support for more control of the InfoBox through the NPMap.config object. This new support includes the ability to change the positioning behavior of the InfoBox.
  • More example web maps, with better formatting and documentation for all of the example maps.
  • Work on z-index for all NPMap components. The z-index is now (roughly) from bottom to top: base map, layers, infobox, then controls.

0.7.1 November 14, 2011

Link to hosted version

This release includes a number of fixes and minor enhancements.


  • The NativeVectors layer handler now checks for pending requests, including JSONP requests, and aborts them if they are no longer needed. This improvement will be most noticeable for users on a slow network connection. For these users, the improvement in performance should be dramatic.
  • Updated NPMap's bootstrap.js to load and utilize the newest version of RequireJS, 1.0.1, the newest version of jQuery, 1.7, and the newest version of the Wax library, 4.1.2.
  • The InfoBox class now does a better job detecting the height and width of a marker icon and calculating its anchor. This helps with positioning.
  • Greatly enhanced the Kml layer handler. If symbology and attributes are supplied within a KML file, NPMap now utilizes this information, where possible, to automatically configure the behavior of the layer.


  • An issue introduced with the latest release of the Bing Maps v7 AJAX control that prevented NPMap from properly loading data from NativeVectors layers after the map was zoomed or panned by the user.
  • An issue introduced with the latest release of the Bing Maps v7 AJAX control that caused the InfoBox to be positioned to the left of a map marker when being displayed for Kml and NativeVectors layers.
  • An issue introduced with a change in the TileStream hosting API. The TileStream/Modest Maps/Wax stack should be solid from this point on, as the API has been solidified.

0.7.0 October 26, 2011

Link to hosted version

This is a major new release of NPMap that introduces several new features along with a host of bug fixes and enhancements.


  • Full support for the modestmaps base API.
  • Support for KML files, via the Kml layer handler. This new support also introduces a server-side KML proxy, hosted at, that loads KML files, validates them, cleans them up/minifies them, and caches them before sending them to the client.


  • Enhanced support for TileStream layers, including support for interactivity and compositing when using the modestmaps base API.