Crater Lake National Park


Digital maps for the National Park Service


There are a few core concepts you should understand before working with the NPMap library. You'll see these terms a lot as you browse through the documentation:


One of NPMap's primary goals is to build web maps that are accessible to everyone.

We will have more information about what we are doing to make NPMap web maps as accessible as possible posted here soon.

Asynchronous Loading

NPMap uses asynchronous loading of resources to improve performance. The use of asynchronous loading allows NPMap web maps to load resources without blocking other resources on the web page from loading. This enhances performance and improves the overall user experience.


NPMap utilizes both client and server-side clustering to increase the performance and usability of point vector data. The Json layer handler can be used to consume points clustered on the server-side by the NPMap cluster service (more information coming soon!). We are working on adding client-side clustering to all of the vector-based layer handlers, including: GeoJson, Json, Kml, and Xml.


Clustered data are basically simplified representations of data. Clustered points represent multiple real-world points, and they are often sized to visually represent the number of points they represent (the larger the clustered point, the more real-world points it represents).

Data in web maps are often clustered to enhance performance and/or usability.


One of the major benefits of using NPMap is that web maps built with NPMap automatically get a look-and-feel that complies with the NPS graphic identity guidelines as defined by Harpers Ferry Center. In addition, all NPMap web maps utilize modern best practices and take advantage of the latest standards like CSS3 and/or HTML5, if available.

On Demand

NPMap only loads resources (JavaScript, CSS, HTML, etc.) when they are actually needed by the web map. This is usually called loading "on demand" or "lazy-loading." An example: If a popup window is only needed when a user clicks a button, NPMap will not load the resources that are needed by this popup window when the map initially loads. The resources are only loaded if/when the user actually clicks on the button.

This on demand loading of resources helps dramatically improve the overall user experience by:

  1. Improving the initial load time of the web map: The time between when the browser loads the page and when the user can interact with the web map is minimized.
  2. Making the web map and associated user interface more responsive. NPMap minimizes the amount of processing the browser has to do. This improved responsiveness is most evident in "legacy" web browsers.


More information coming soon...


Simple is beautiful. One of the primary goals of NPMap is to hide the underlying complexity of web maps from the end user.