ThinkGeo.com    |     Documentation    |     Premium Support

Formatting MapInfo Tab file

Hi,


I need to be able to create formatted MapInfo tab files.


I need to control the way features are displayed - shape (e.g. star, triangle, Lozenge-shaped etc), line type (width, dashed) and colors.


There is not much documentation on the subject - I've done the following code:


 



List<TabDbfColumn> columns = new List<TabDbfColumn>();
columns.Add(new TabDbfColumn("LINK_ID", DbfColumnType.String, 10, 0, true, true));
columns.Add(new TabDbfColumn("X", DbfColumnType.Double, 20, 10, false, false));
columns.Add(new TabDbfColumn("Y", DbfColumnType.Double, 20, 10, false, false));
columns.Add(new TabDbfColumn("CreateDate", DbfColumnType.Date, 0, 0, false, false));

PointShape p = new PointShape(157633, 615456);
p.Id = "P1";
Feature f = p.GetFeature();
f.ColumnValues.Add("LINK_ID", "P1");
f.ColumnValues.Add("X", "157633");
f.ColumnValues.Add("Y", "615456");
f.ColumnValues.Add("CreateDate", "20/12/2010");

List<Feature> features = new List<Feature>();
features.Add(f);

TabFeatureSource.CreateTabFile(MapPath("~/app_data/MyTab.TAB"), columns, features);

What do I need to modify in order to be able to change the how the features appears? Is there a tutorial/demo for creating such files?



 Tomer,


 
Thanks for your questions!
 
If I didn't misunderstand it, I think you want to create the tab file with the special styles. Actually we don't support it but we have a workaround for that, you just need to create the tab file, then set the style to the tab file when loading it. Also you can reference this code community sample to see how to load a native tab file with styles and edit, delete the records.
 
wiki.thinkgeo.com/wiki/File:...110524.zip
 
Any more questions please let me know again,
 
Thanks,
 
Scott,

Hi Scott,


I believe you understood me well. I am trying to create TAB files with specific styles in each.


The problem with the workaround you suggested is that I need the style "embedded" in the file so that "external users" (that is, people using a difference viewer - e.g. MapInfo Pro/Viewer) will see the same view (and maybe Edit).


(BTW, does it means that the TAB layer I create will also not take the styles from the file but will be rendered as per my specification in the ZoomLevelYY.XXXStyle?)


I've seen that the writing of the file is based on a Feature class - maybe I can somehow subclass it and have it written or is it something internally with how the TabFeatureSource.CreateTabFile(...); works?


Maybe you can think of a way to "hack" it?


If not, and I hope it is ok to ask it here, do you know of another way I can do that? (e.g. open source library). I really like your Silverlight Edition but unfortunately, this TAB file creation is an important requirement for the first phase of my development (until I can "wean" my users away from these TAB dependant platforms ;-)


Thanks,


Tomer


 



Anyone, anything? 


 Thomer,


 
Sorry for answering you delay we just back to work from the holiday,
 
First I will tell you a little about the static function CreateTabFile, when calling this function in your application, it would call the CreateTabFile function of TabFeatureSource class, the TabFeatureSource class wraps the core functions for native tab file that includes the create tab file method. But currently, we don't support the ability for creating tab file with your special styles. We just support the special styles when rendering the tab file, not create it. 
 
Also the CreateTabFile method does not allow the user to override it, it is a static method. The attachment is the core method for creating a feature to the tab file. You can see there are not any codes represent writing the style information. The native tab file support is an new part from 5.0.0.0 of MapSuite, it is from a third part component that we converted it to our product. Anyway, your suggestion is really good for us, please feel free to suggest it on our enhancement tracker at:  
 
 helpdesk.thinkgeo.com/EnhancementTracker
 
and see if the Map Suite community will give it any votes. We will consider to add the ability to the next public release,
 
Thanks,
 
Scott,
 
 

createTabFeatureCore.txt (6.61 KB)

Hi Scott, 
  
 Thanks for the reply. I didn’t see notification so I just read it now. 
  
 Maybe the ability to create a styled layer file (e.g. Shape file or some other format) is possible? 
  
 At the end I need to be able to export the features with styles in a way that 3rd party viewers (e.g. MapInfo Pro, etc) will be able to present is as I am presenting it within MapSuite rendered map… 
  
 Thanks, 
  
 Tomer

Hi Tomer, 
  
 For all I know, Both the shape file and tab file don’t support style, only something like KML should support that. 
  
 Sorry our map control don’t support create KML, and I am not sure whether the 3rd part viewers support read that. 
  
 But if the 3rd part viewer support read that, you can try to create logic for build it. 
  
 Regards, 
  
 Don