GeoPDF Map Frames
We've discussed the concept and mechanisms of georegistration -- the alignment or registration of two Cartesian coordinate systems (one of which is a projected coordinate system (PCS)) via a coordinate transformation matrix. We take this explicit relationship between a PDF page and a specific PCS, give it a name, delineate a region on the page for which the relationship is valid, and name a preferred display coordinate system, and roll it all up into what we call a map frame. I don't now remember from whence the name, but this one turned out OK, IMO.
So here are the map frame pieces:
- map frame description or name
- map coordinate system
- preferred display coordinate system
- page area of map (bounded by neatline)
You'll notice that there isn't anything particular to PDF in there. GeoPDF georegistration and map frames, although talked about here largely in PDF jargon, are by design not solely applicable PDF. You could georegister a portion DVI, AI, (E)PS or HTML page among others, or any file that references some Cartesian coordinate system like DGN or DWG. GeoTIFF has a provision for a CTM that maps pixels to a projected coordinate system. Lovely spec, that. I strongly encourage everyone to read it and profit from the work of Niles Ritter, Mike Ruth, and the GeoTIFF crew. I guess what I'm getting at is if there is a map or image in bits and bytes format, it should be georegistered! Perhaps this post should have been titled The Map Frame Manifesto...
A final note about map frames is that they are only implicitly tied to the content in or image on the page (we'll that's not exactly true with a variation of Adobe's georegistration technique, but I'll leave that for another post...). A page can have several map frames and they can "stack". For instance, maps in that road atlas under the Hanna Montana coloring book and crayons in the back of the car has a map of Utah in it, with insets for Salt Lake City and Provo obscuring Colorado and Nevada. In GeoPDF, that map would have three map frames: a base map for Utah and adjacent states with two insets on top for SLC and Provo, respectively. Map frame stacking is an important implementation detail, because it controls how you determine what you're looking at when, say doing roll-over detection for mouse movement. More on this, later.