Click here to Skip to main content
Licence CPOL
First Posted 18 Jun 2006
Views 58,647
Downloads 1,300
Bookmarked 25 times

Mapinfo Tab to ESRI Shapefile Converter

By | 2 Dec 2010 | Article
A batch converting tool that can convert GIS data from "mapinfo tab" to "ESRI shapefile".

Sample Image - MapinfoTab2Shp.jpg

Introduction

Mapinfo tab to ESRI shapefile converter can convert MapInfo vector tables to the ESRI shape format. It is implemented as a command line interface to IMUT.exe.

Using the Code

This is a code sample, and will only work with Universal Translator Imut files.

char szExeFile[1024];
sprintf(szExeFile, "\"%s\\imut.exe\" CFGenerate " 
        "MAPINFO SHAPE \"%s/\" hggtemp1.dat LOG_STANDARDOUT YES", 
        (LPCTSTR)m_strImut,(LPCTSTR)strFilePath);

STARTUPINFO si;
GetStartupInfo( &si );
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_FORCEONFEEDBACK;
si.wShowWindow = SW_HIDE;

if(CreateProcess(NULL,
    szExeFile,
    NULL,
    NULL,
    FALSE,
    CREATE_DEFAULT_ERROR_MODE,
    NULL,
    (LPCTSTR)m_strImut,
    &si,
    &pi))
{
    CloseHandle(pi.hThread);
    WaitForSingleObject(pi.hProcess, INFINITE);
    //GetExitCodeProcess(pi.hProcess, &dwExitCode);
    CloseHandle(pi.hProcess);
    
    FILE *fp;
    sprintf(szExeFile, "%s\\hggtemp2.dat",(LPCTSTR)m_strImut);
    if((fp = fopen(szExeFile, "wt")) != NULL)
    {
        fprintf( fp, "MACRO _EXTENSION TAB\n");
        fprintf( fp, "MACRO SourceDataset %s\n", (LPCTSTR)strFilePath);
        fprintf( fp, "MACRO DestDataset %s\n", strDstPath);
        fprintf( fp, "INCLUDE hggtemp1.dat\n");
        fclose(fp);
        
        sprintf(szExeFile, "\"%s\\imut.exe\" hggtemp2.dat", (LPCTSTR)m_strImut);
        if(CreateProcess(NULL,
            szExeFile,
            NULL,
            NULL,
            FALSE,
            CREATE_DEFAULT_ERROR_MODE,
            NULL,
            (LPCTSTR)m_strImut,
            &si,
            &pi))
        {
            CloseHandle(pi.hThread);
            WaitForSingleObject(pi.hProcess, INFINITE);
            //GetExitCodeProcess(pi.hProcess, &dwExitCode);
            CloseHandle(pi.hProcess);
        }
    }
}

Points of Interest

The tool can convert a lot of tab files (located in a different directory) to shapefile format. Manual operation is a tiring, trouble thing; it may cause an error.

History

  • 18th June, 2006: First release.
  • 2nd December, 2010: Updated source code.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

sun_xf

Web Developer

China China

Member



Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralAlmost Pinmemberpsy2311:12 19 Apr '11  
GeneralMy vote of 1 Pinmemberaydinsahin11:22 4 Dec '10  
GeneralEnglish please PinmemberMuammar©1:09 5 Jun '07  
GeneralMapinfdo file format PinmemberAlexEvans13:12 19 Jun '06  
Thanks for sharing,
 
We were using Mapinfo some time in the past and dropped it because of the price per user...
If however we know the TAB file format, the information can be extracted and used in different ways.
 
Do we "Know" the file format?
What if we base our application on the current format, and that format changes?
 
Cheers
Alex
GeneralRe: Mapinfo file format Pinmembergxdata18:13 19 Jun '06  
Question?? PinmemberDarka23:09 18 Jun '06  
AnswerRe: ?? Pinmembertrevor.hart0:13 19 Jun '06  
GeneralRe: ?? PinmemberDarka0:17 19 Jun '06  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120529.1 | Last Updated 2 Dec 2010
Article Copyright 2006 by sun_xf
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid