Today we go a bit behind the scenes of MapInfo Pro. We will look at how you can reorder the way projections appear in the projection dialog, we will add a custom group of projections, and we will discuss why this can be a good idea.
First, a warning: we are modifying a file used by MapInfo Pro if you make changes that makes MapInfo Pro unable to read the file, you may be in trouble. Therefore, always create a copy of the file before making any changes to it.
Also note that in MapInfo Pro, we typically use the words "Projection" and "Coordinate System" interchangeable. We normally use the term "Projection" in the software for "Coordinate System".
MapInfo Pro comes with a preconfigured projection file with thousands of defined coordinate systems. This file can differ slightly between the different language versions of MapInfo Pro. Besides having translated names for the categories and the projection names, some localized versions of MapInfo Pro also have a slightly different order of the projections. Typically, we can have moved the local projections to the top of the projection file.
You can find the Projection File, MapInfoW.PRJ, in the folder where you have installed MapInfo Pro. It's a basic text file so you can open it with your preferred text editor.
If you are using a localized version of MapInfo Pro, you have to locate the Projection File in a subfolder. For Danish, look in the folder "da", for Finnish look in "fi" and so on. If the subfolder doesn't contain a MapInfow.PRJ, use the Projection File in the main installation folder.
Also, note that the Projection File can be shared in your organization via the Workgroup Directory.
The typical English Projection File comes with the Longitude / Latitude coordinate systems at the top. Longitude/Latitude (WGS84) is also the predefined projection to use in MapInfo Pro unless you change this via Map Preferences.
For reasons we will discuss later, it sometimes can make sense to change the order of the categories and their category members.
In this example, we want to move, or copy, the Danish Coordinate systems to the top of the Projection File.
First, you need to locate their current position. Typically, the coordinate systems are ordered alphabetically. You can also try to search for the country or language name to locate the coordinate systems. The Danish coordinate systems are located after "Croatia".
The next step is to select the Category and its Category Members and either copying or clipping these. As MapInfo Pro doesn't mind having a projection multiple times, you can use Copy to be on the safe side in the Projection File.
Also notice that there are two sets of coordinate systems for Denmark: Bounded and Unbounded. We decide to copy both.
Now go to the top of the file, and paste the copied text into the file. Make sure you have an extra line between the different categories. This makes it easier to read the file for you.
Save the file and check out the list of Categories in the Choose Projection dialog in MapInfo Pro. You can for example access the dialog from the Map Preferences via the Projection tab.
Note that MapInfo Pro reads the file every time you go to the dialog. This means you don't have to restart MapInfo Pro every time you make changes to the Projection File.
Now that was quite easy, right? Let's take this a step further as you often use coordinate systems across multiple categories. Therefore it would make sense to create a custom category and add the coordinate systems that you often use to this category in the Projection File.
The first step is to copy the category line from one of the existing categories and change the name to your preferred category name, like "My Favorite Coordinate Systems". Make sure that you add this to the top of the Projection File for easy access.
The next step is to look through the Projection File for the coordinate system you often use. For each of these, make a copy of the line and paste it under your new custom category. In the end, the list could look like this which is mine:
In the Choose Projection dialog, the list of Candidate Members will look like this:
A nice list of my favorite coordinate systems with easy access as I don't need to switch to different categories to locate the specific coordinate system. As you can see this list contains a mix of coordinate systems from Denmark, the United Kingdom, Lat/Long, and Projections of the World.
As promised earlier, I also want to share why the order matters.
It comes down to the way MapInfo Pro remembers a coordinate system and looks for a match in the Projection File.
When you select a coordinate system from the Choose Projection dialog or sets a current coordinate system for example using a MapBasic statement, MapInfo Pro only remembers the parameters of the coordinate system. It doesn't remember the name of the coordinate system, nor does MapInfo Pro cache the EPSG code for the select coordinate system.
The parameters of the coordinate system are the numeric values you can see in each line after the name of the coordinate system. The name of the coordinate system also contains a potential EPSG code for the coordinate system. This is given using the \p parameter at the end of the name of the coordinate system.
As it only stores the parameters internally, MapInfo Pro has to search through the Projection File to again find more details about the coordinate system, such as the name and the EPSG code. This search starts from the top of the file.
Having your most commonly used coordinate systems at the top will make this search faster. Not that I think you really would notice the difference though.
There is another more important reason the order matters.
There are examples of coordinate systems using the same parameters but different names and, more importantly, different EPSG codes. One example of this is a commonly used coordinate system in Denmark:
"UTM Zone 32 Euref89\p25832", 8, 115, 7, 9.0, 0, 0.9996, 500000, 0
This coordinate system also comes in a more generic version under the category "ETRS Transverse Mercator (ETRS89)"
"ETRS TM Zone 32, Northern Hemisphere (ETRS89)\p3044", 8, 115, 7, 9, 0, 0.9996, 500000, 0
As you can see the parameters are alike, but the name and the EPSG codes are different. If you are using one of these, MapInfo Pro will use the first one it finds in the Projection File. And this will also decide which name and which EPSG code MapInfo Pro will select.
For the name, it can be annoying to see a name that you don't expect but things will still work.
For the EPSG code, it can get more complicated. Especially when you use MapInfo Pro in combination with other systems or databases where the coordinate system is determined by the EPSG code. One such example is SQL Server Spatial, and the problem here is worsened by the fact that SQL Server Spatial doesn't support coordinate transformations out of the box. Therefore it's important that the data is stored using the same coordinate system determined by the EPSG code.
If you are using MapInfo EasyLoader to upload data to SQL Server, make sure to copy your Projection File from the MapInfo Pro folder to the folder where EasyLoader is installed. Otherwise, EasyLoader can assign a different EPSG code to the tables in the database than the EPSG code you are using in MapInfo Pro.
I hope you found this useful.