On-the-fly projection

On-the-fly projection is one of the many new features in GMS 9.0. On-the-fly projection means that individual objects (coverages, grids, images etc) can define their own projection. If they do, they will be reprojected to a common display projection when drawn. Thus, if you have data defined in different coordinate systems (state plane, UTM etc) you can now import that data as is and it will all be drawn in the right place. The only necessity is that a .prj file accompanies the data or that you specify the projection in GMS after importing.

Objects don't have to define their own projection. If they don't, GMS assumes the object's projection is the same as the display projection and just draws it using the object coordinates without performing any reprojection.

There are a few rules with on-the-fly projection. If an object's projection doesn't match the display projection it cannot be edited. You can, however, change the display projection to match the object's projection, edit the object, and then change the display projection back if you like.

Another rule is that if a grid (2D or 3D) defines it's own projection, the display projection must match the grid projection. GMS will force them to match. Furthermore, all grid objects (2D, 3D and the grid frame) must either define no projection, or all define the same projection.

GUI changes

A number of changes in the GUI were made to support the new projection functionality.

The Projection command was moved from the Edit menu to the Display menu and renamed Display Projection.

The status bar was changed to show the current display projection as well as the latitude and longitude whenever the display projection is a global projection:

Status bar showing lat/lon and current display projection.

A standard "Projection" sub-menu was added to the right-click menu of every object. This menu has commands to set the object's projection, set the display projection to match the object's projection, reproject the object, and transform the object.

Standard Projection sub-menu added to all objects.
The projection dialog was modified so that it now says "No projection" instead of "Local projection". The difference is subtle, but we felt the new verbage was more accurate.

New Projection dialog.