[GIS] Dynamic connection between Mapinfo and a database

mapinfopostgresqlsql

I'm trying to create a dynamic connection between a database and a Mapinfo table. My database countain only one table, with a list of bus stops, characterized with their ID, name, and X Y coordinates. I already have created a Mapinfo table that updates with the database, using a DBMS connection, and I have made it mapable so the stops are placed on a map at the right coordinates.

But I can't make it work the other way; The table created with the DBMS connection is read only. I'm trying to make the Mapinfo Table editable, and to apply the changes of the table on the database.

Can anybody help me out?

(I use Mapinfo Professional 12.5 and PostgreSQL)

Best Answer

You need the mapcatalog to store spatial data in the database from MapInfo Pro and for MapInfo Pro to be able to read the spatial data from the database.

If you don't have the mapcatalog and your table is spatial/mappable in MapInfo Pro chances are that you aren't reading/writing the spatial data to the database but just storing it in a local .map file connected to your attribute file (.dat).

This also means that the spatial database can only be accessed from MapInfo Pro if you open this specific table.

I would recommend that you create the MapInfo MapCatalog via EasyLoader and then save your table back to the database using a different name, either via File > Save as or via EasyLoader.

I have created a presentation that will give you a good overview on how to use and take advantage of a spatial database from MapInfo Pro. The presentation is based on SQL Server but most of the concepts are the same for PostgreSQL/PostGIS.

You can find the presentation here: Working with MapInfo Professional and Spatial Databases

Basically you need to go thru a number of steps to prepare a spatial database for use with MapInfo Pro:

  1. Create the database
  2. Create a login for the database
  3. Create a (ODBC) data source for the database
  4. Create the MapInfo MapCatalog in the database (using EasyLoader)
  5. Upload tables to the database using MapInfo Pro's File Save As (in the filetype dropdown list, pick the data source pointing at the database you want to save the table to) or
  6. Upload tables to the database using EasyLoader

If your database already holds tables with spatial data, you need to add these tables to the MapCatalog using MapInfo Pro: Table > Maintenance > Make DBMS Table Mappable.

You can find more details in the presentation and in the documentation for MapInfo Pro, look for the chapter "Working with Data in a DBMS".