This slide deck has only been tested in modern browsers, and may not work properly in older versions of Internet Explorer.

Choosing the Right Tool for the Job

October 16, 2012

@nateirwin
github.com/nateirwin

We help preserve and protect America's special places

American Samoa

Denali

Zion

Glacier

Great Smoky Mountains

Acadia

Virgin Islands

We protect America's cultural resources too

Mount Rushmore

Antietam

World War II Memorial

The NPMap team coordinates web mapping across the NPS, an agency of more than 22,000:

NPS Employees

Out of all these users, only a handful have the technical knowledge to build a web map

The NPS is organizationally federated and decentralized, and funding is rarely distributed from the top-down. This means we have to:

  1. lead by example
  2. focus on the real world needs of our parks
  3. encourage "good behavior" by creating incentives

If we aren't solving meaningful problems for our users, our work will be ignored

Our Primary Goal

Bridge the gap between the work the National Park Service does internally and the public by making it easy for all of our

Wall Arch before August 4, 2008

Wall Arch after August 4, 2008

A few examples:

The Barriers

1. Licensing and other legal issues

2. IT policies

Photo by killbox

3. Web content policies

4. Accessibility (Section 508)

5. Lack of technical knowledge

When faced with these barriers, most users just give up

Or create something like this

Our Secret Goal

Ensure that web maps deployed to NPS web sites follow accepted best practices, fit into the look-and-feel of the NPS graphic identity, and can be maintained for the long-haul with the park service's limited resources.

Working out a solution

Some fundamental principles:

  1. Avoid proprietary technologies (where possible)
  2. Use standards
  3. Stay nimble and agile (iterate, iterate, iterate)
  4. Build best practices in

The NPMap Library

A nontraditional JavaScript web mapping abstraction library built, maintained, and used by the National Park Service.

Untraditional:

Abstraction:

So, rather than...

building a web map using the ArcGIS API for JavaScript...

like this and...

building a web map using the Bing Maps API...

like this and...

building a web map using the Google Maps API...

like this and...

building a web map using Leaflet...

like this and...

building a web map using Modest Maps JS...

like this you can just...

do this. Give it a go...

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <div id="example-map">
    </div>
    <script>
      var NPMap = NPMap || {};
      
      NPMap.config = {
        api: 'leaflet',
        div: 'example-map'
      };
      
      (function() {
        var s = document.createElement('script');
        s.src = 'http://www.nps.gov/npmap/1.0.0/bootstrap.js';
        s.type = 'text/javascript';
        document.body.appendChild(s);
      })();
    </script>
  </body>
</html>
        

Now that all of our projects utilize the same codebase, we have time to make it great

NPMap eliminates the barriers and allows users to focus on their unique requirements

Licensing and legal:

Photo by killbox

IT policies:

Web content policies:

Accessibility (Section 508):

Lack of technical knowledge:

Other benefits:

We're trying to lower the entry point for web mapping

The library is just one piece of the larger framework

NPS Basemap

NPMap Builder

Places of Interest:

The Takeaway

If you're building more than one web map, take the time to develop and implement an approach that is sustainable for the long haul.

Thanks!

@npmap
http://www.nps.gov/npmap/decks
http://github.com/nationalparkservice/npmap