How to Use Neatline with Map Warper Instead of GeoServer

TL;DR. You don’t need GeoServer to use historic map layers in Neatline: you just need any WMS server, such as Map Warper. Map Warper’s base WMS URL is{MAPID}; the layer ID is whatever title you gave the map in Map Warper.

For any map that needs to connect its elements to full metadata and/or narratives, Omeka and the Neatine plugin are a useful combination. I used Omeka and Neatline for a class on mapping Boston’s religions—the kind of class I hope to teach again—and most recently in a workshop session on deep mapping.

The trouble with Neatline is its recommended dependency, GeoServer. Omeka and Neatline require only a LAMP stack, which you can to find on any shared web host. (Shout out to Reclaim Hosting, which is far and away the best host for academics and students.) Installing Omeka and the main Neatline plugin is very easy. GeoServer, however, is a Java application and is a pain to install. At the very least you’ll need a virtual private server and some webmaster chops to get it up and running.

I’ve figured out how to use all of Neatline’s features without installing GeoServer by using a different WMS server instead. The people at THATCamp Prime this weekend indicated that an explanation would be helpful, so I’m writing up how to do that.

Neatline has many parts, and you have to understand what functionality each of them provides. The Neatline documentation is clear that with just the main Neatline plugin you can add points or lines or polygons associated with Omeka items on top of common map layers such as Google Maps or Open Street Maps.1 To take a trivial example, here is a single point in Neatline with an Open Street Maps base layer. If this is all you want to do, then you don’t need GeoServer or another WMS server at all.

Figure 1: A single point in Neatline. [PNG]

But one of the compelling features of Neatline is the ability to add georectified maps. These maps are not just additional map layers, but are also items which can be associated with metadata. As an example, in the screenshot below I have included a map titled “Historic Canterbury.” The Neatline documentation says that to include such maps you need GeoServer: “For projects that need to incorporate custom imagery, though—for example, historical projects that want to overlay georeferenced maps on top of the default layers, or art history projects that need to use scans of paintings as base layers in exhibits—a third piece of software called GeoServer is necessary.”

Figure 2: A historical map layer in Neatline. [PNG]

What the Neatline documentation does not clearly explain is why GeoServer is necessary. GeoServer provides you with the ability to serve georectified maps via the Web Map Service (WMS) protocol. In the most common use case for Neatline, GeoServer takes a georectified TIFF of a map located on your server and serves up the map for your users’ browsers.

But many services on the web provide geospatial data via WMS. We could, if we took time to figure it out, overlay NASA temperature data in Neatline, or topographical maps. All we need is the base URL of a WMS service and the layer IDs of the maps that are being served.

Map Warper is a service that provides a web interface for georectifying maps.2 For instance, here is the map of Canterbury that I displayed above. Map Warper provides several export options, including WMS. You can dig through the XML returned by its WMS capabilities query in order to figure out the correct settings for Neatline, or you can follow these instructions. The base URL will take this form:{MAPID}. The map ID is the numeric value assigned to your map at Map Warper, which you can figure out from the Map Warper URL or metadata. For the Canterbury map, the ID is 9592, so the full WMS base URL is Then you need the layer ID. The layer ID is whatever title you assigned to your map at Map Warper, in this case, Historic Canterbury. Once you’ve gathered that information, you can create a new item in Neatline, and enter that into the “Style” tab on the item interface.

Figure 3: Adding WMS settings to a Neatline item. [PNG]

Omeka and Neatline together are very useful for certain kinds of maps, so I hope this brief explanation helps people who might otherwise be deterred by the GeoServer dependency.

Bonus: Installing GeoServer via Docker

Once you grok Docker, GeoServer is not that hard to install, though it is still work to maintain. This Docker image for GeoServer is well documented. I was able to get it working on a low-powered Digital Ocean instance without any fuss.

  1. I can’t find this in the Neatline documentation itself, but according to the Neatline forums actually it is possible to use just the Neatline plugin with any tile in the common {Z}/{X}/{Y} format.

  2. You may also have seen it at the New York Public Library or at Harvard’s WorldMap.