Building map books with ArcGIS
ArcGIS provides all the tools you need to create map books in printed or Adobe PDF format. A map book is a collection of pages printed or exported together. Many of the pages contain maps, but other pages may be dedicated to text, tabular information, tables of contents, or title pages and other content.
At its simplest, anyone can create a map book by manually printing a title page, then some map pages and anything else they want to include in the compiled document. But this process is made more reasonable and efficient when software can automate the process. ArcGIS provides that capability through Data Driven Pages for the simplest cases and arcpy.mapping Python scripts for more advanced scenarios.
Map book types
There are a number of map book configurations, or types, that you can create.
Simple reference series map book
A simple reference series map book is a set of map pages in which the layout of each page is identical except for the extent of the detail page and the content of some page elements. A simple reference series map book lacks a title page, overview map, ancillary pages, and other unique page layouts. It can be quickly defined in ArcMap using Data Driven Pages and exported via the export map dialog without the need to configure a special arcpy.mapping export script.
The example above shows a topographic map book for Arenac County, Michigan. This 22-page series can be easily created by any ArcMap user with an Internet connection. The data comes from the USA Topographic map service available at ArcGIS online. No other data is needed to re-create this map series. You can easily re-create this simple reference series using Data Driven Pages, the geoprocessing tools available from the Data Driven Pages toolset, data frame properties, and dynamic text.
To create the map book above, follow the steps outlined in these help topics:
Map book with title and map index page
A more complete map book includes a title page and an overview map page. You can accomplish this through a combination of ArcMap Data Driven Pages and a simple arcpy.mapping Python script.
The example above shows a topographic map book for Arenac County, Michigan. This map includes a title page and an overview map page. You can create this document using Data Driven Pages and an arcpy.mapping Python script.
For detailed instructions on how to do this, see Adding title and overview map pages to your map book.
Map books with ancillary documents
Many map book include ancillary, or supporting, documents. These can be report text, tables, indexes, and other supporting data. Creating these types of map books can be done through a combination of ArcMap Data Driven Pages and a simple arcpy.mapping Python script.
The example above shows a topographic map book for Arenac County, Michigan. This map book includes a number of supporting pages offering text information, graphs, and tabular data. You can create this document using Data Driven Pages and an arcpy.mapping Python script.
For detailed instructions on how to do this, see Inserting supporting pages into your map book.
Map books with facing pages
Facing pages allow the map author to account for the book "gutter." The gutter is the space required to allow for binding book pages together. Often, this is a map book that contains a reference series covering a succession of map extents, just as a reference map book does. However, unlike a simple reference series, this map book utilizes the layouts of two map documents, one for the left page and one for the right. The series extents are defined using Data Driven Pages. Create the same set of Data Driven Pages in each map document. The arcpy.mapping Python script uses both map documents and assembles the left and right pages into the final PDF document in the proper order.
The example above shows a topographic map book for Arenac County, Michigan, with facing pages. Notice that the odd-numbered map pages (for example, page 3) have a layout alignment such that all page elements are shifted to the left. Even-numbered map pages (for example, page 4) are aligned to the right. This is to allow space for the book binding. Also, page numbers and the locator map have been located for each map layout so that they are on the outside of the page. Each page alignment (both left and right) is based on a separate ArcMap document. You can create this document using Data Driven Pages and an arcpy.mapping Python script.
For detailed instructions on how to do this, see Creating a map book with facing pages.
Thematic map book
A thematic map book is similar to a reference series, except that the detail pages show unique thematic maps of a single location. It is also possible to build a hybrid thematic-reference series that includes a series of thematic maps for multiple map extents. As in the case of a reference map book, exporting a thematic map book requires a Python script that defines the maps to be included and executes the document assembly steps.
Reference map book with insets
Many atlases use inset maps to show more detail for densely populated areas. This can be handled using a set of map documents. For pages that don't contain inset maps, a shared map document containing Data Driven Pages can be used. Another map document can be used for pages that contain an inset map. If the inset map location is different on different pages, use a separate map document to define each inset location. Then all the map documents can be synchronized using the index layer.
Create a field on the index layer that selects the map document to use for the given map extent. It could be as simple as 1, 2, or 3, where 1 means use the basic map document with no insets, 2 means use the map document with an inset in position a, and 3 means use the map document with an inset in position b. An additional field could specify the map extent of the inset.
The script can then get the page list from the first map document and loop through using the map document field to determine which map document should be used to create output for the current page. For inset pages, the additional inset extent field is read and applied before outputting.