稳定盈利的期货交易方法-量化趋势交易

alantop's blog

量化趋势交易
随笔 - 595, 文章 - 0, 评论 - 921, 引用 - 0
数据加载中……

mapinfo mif/mid文件格式详解

MapInfo MIF/MID file format description

(from Appendix A of MapInfo Reference)

This appendix describes the data interchange format for MapInfo. In this

appendix, you will find information on:

MIF File header mif文件头

MIF Data Section mif 数据区

Pen, Brush, Symbol, and Font Codes in MIF 画笔,画刷,字体代码

MID File

This versatile format allows generic data to be attached to a variety of

graphical items. It's ASCII, so it is editable, relatively easy to generate,

and works on all platforms supported by MapInfo. Perhaps the best way to

understand the MapInfo Interchange Format (MIF) is to study the sample file

at the end of this appendix in conjunction with the explanation of the file

format. You can also create samples of your own by exporting files to MIF and

then examining those files in a text editor.

Mapinfo data is in two file -- the graphics reside in a .MIF file and textual

data is contained in a .MID file. The textual data is delimited data, with

one row per record and either Carriage Return, Carriage Return plus Line Feed,

or Line Feed between lines. The MIF file has two areas -- the file header are

and the data section. Information on how to create MapInfo tables is in the

header; the graphical object definitions are in the data section.

MIF FILE HEADER

This is a description of MIF file header with optional information in square

brackets.

Version n

Charset "characterSetName"

[ DELIMITER "<c>" ]

[ UNIQUE n,n.. ]

[ INDEX n,n.. ]

[ COORDSYS... ]

[ TRANSFORM... ]

COLUMNS n

<name> <type>

<name> <type>

DATA

Version

The Version clause states whether you are using VERSION 1, VERSION 2, or

VERSION 300 of the format. Version 300, introduced with Mapinfo 3.0, allows

multiple-section polyline objects.

Charset

The Charset clause specifies which character set was used to create text in

the table. For example: Specify "WindowsLatin1" to indicate that the file was

created using the Windows US & Western Europe character set; specify

"MacRoman" to specify the Macintosh US & Western Europe character set; or

specify "Neutral" to avoid converting the text into another character set.

If you are not using one of these character sets, you can determine the

correct syntax for your character set by exporting a table and examining the

.MIF file in a text editor.

Delimiter

Specify the delimiting character in quotation marks, for example:

DELIMITER ";"

The default delimiter is Tab; if you are using the default, you do not need

the DELIMITER line.

Unique

Specify a number. This number refers to a database column; 3 is the third

column, 7 is the seventh column, and so forth. What happens to column in the

UNIQUE list is subtle. For example, imagine that you have a database with

highways in it. Each highway has only one name, but it might be represented

by several segments. You would put the NAME column in the UNIQUE list, while

the column containing data for the individual segments would not be in that

list. This has the effect of creating two related tables; one with names,

and one with the other attributes of the objects. This is how MapInfo's

various street maps (StreetInfo) are prepared.

Index

To indicate that columns in the table are indexed, include a number (or a

comma-separated list of numbers) in the Index clause. Each number refers to

a database column; 3 is the third column, 7 is the seventh column, and so

forth. Columns in the INDEX list will have indexes prepared for them.

CoordSys Clause

Specify the COORDSYS clause to note that the data is not stored in

longitude/latitude form. When no COORDSYS clause is specified, data is

assumed to be stored in longitude/latitude forms. All coordinates are stored

with respect to the northeast quadrant. The coordinates for points in the

United States have a negative X while coordinates for points in Europe (east

of Greenwich) have a positive X coordinates for points in the Northern

hemisphere have a positive Y while coordinates for points in the Southern

hemisphere have a negative Y.

Syntax 1:

CoordSys Earth

[ Projection type,

datum,

unitname

[,origin_longtitude ]

[,origin_lattitude ]

[,standard_parallel_1

[,standard_parallel_2]]

[,azimuth ]

[,scale_factor ]

[,false_easting ]

[,false_northing]

[,range ]]

[ Bounds (minx,miny) (maxx,maxy) ]

Syntax 2:

CoordSys Nonearth

Units unitname

Bounds (minx,miny) (maxx,maxy)

Transform Clause

When you have MIF files with coordinates stored with respect to the northwest

quadrant (quadrant 2), you can transform them to northeast quadrant

(quadrant 1) with a transform clause.

--------------------------------------------

| Quadrant 2: | Quadrant 1: |

| Nortwest Quadrant | Norteast Quadrant |

--------------------------------------------

| Quadrant 3: | Quadrant 2: |

| Southwest Quadrant | Southeast Quadrant |

--------------------------------------------

The transofrm clause has the following syntax:

TRANSFORM Xmultiplier, Ymultiplier, Xdisplacement, Ydisplacement

To transform quadrant 2 data into quadrant 1 data, use the following

transform clause:

TRANSFORM -1,0,0,0

The zeroes instruct MapInfo to ignore that parameter.

When you have an application which creates MIF files in quadrant 2, you can:

Add the TRANSFORM clause to the MIF files

Change the application so that it creates coordinates in quadrant 1

Change the application so that it adds a TRANSFORM clause to the MIF

Files

Columns

Specify the number of column. Then, for each column, create a row containing

the column name, the column type, and, for character and decimal columns, a

number to indicate the width of the field. Valid column types are:

char(width) integer (which is 4 bytes)

smallint (which is 2 bytes, so it can only store numbers between

-32767 and +32767) decimal (width, decimals) float

date logical

This is an example of the columns section of the header: COLUMNS 34

STATE char (15)

POPULATION integer

AREA decimal (8,4)

For the database specified in this header, the MID file has three columns:

a 15 character field that represents the STATE column,

an integer field that represents the POPULATION column,

an AREA column that consists of a decimal field with up to 8 total

and 4 character after the decimal.

MIF DATA SECTION

The data section of the MIF file follows the header and must be introduced

with DATA on a single line:

DATA

The data section of the MIF file can have any number of graphical primitives,

one for each graphic object. MapInfo matches up entries in the MIF and MID

files, associating the first object in the MIF file with the first row in the

MID file, the second object in the MIF file with the second row in the MID

file, and so on.

When there is no graphic object corresponding to a particular row in the MID

file, a "blank" object (NONE) must be written as a place holder in the

corresponding place in the MIF file.

NONE

The graphical objects that can be specified are:

point

line

polyline

region

arc

text

rectangle

rounded rectangle

ellipse

A point object takes two parameters; an X coordinate and a Y coordinate. As an

option, specify the symbol that represents the point. Symbols are designated

by numbers. If you omit the SYMBOL clause, the current symbol is used.

POINT x y

[ SYMBOL (shape, color, size) ]

MapInfo 4.0 also supports two variations on the SYMBOL clause; see Symbol

discussion later in this appendix.

A line object requires four parameters; an X and a Y coordinate for each end

point. As an option, specify a pen type. When no pen type is specified,

the current pen type is used.

LINE x1 y1 x2 y2

[ PEN (width, pattern, color) ]

A polyline object consists of one or more sections. If the polyline has more

than one section, include the MULTIPLE keyword, followed by the number of

sections. For each section, specify a numpts argument (which indicates the

number of nodes in that section), followed by an x/y coordinate pair for each

node. Use the optional PEN clause (described later in this appendix) to

specify the line style. If you include the optional SMOOTH keyword, the

polyline is smoothed.

PLINE [ MULTIPLE numsections ]

numpts1

x1 y1

x2 y2

[ numpts 2

x1 y1

x2 y2 ]

[ PEN (width, pattern, color) ]

[ SMOOTH ]

A region object consists of one or more polygons. Specify the number of

polygons through the numpolygons argument (immediately after the REGION

keyword). For each polygon, specify a numpts argument (which indicates the

number of nodes in that polygon), followed by an x/y coordinate pair for each

node. Use the optional PEN and BRUSH clauses (described later in this

appendix) to specify the object's style. Use the optional CENTER clause to

define the object's centroid explicitly.

REGION numpolygons

numpts1

x1 y1

x2 y2

[ numpts 2

x1 y1

x2 y2

[ PEN (width, pattern, color) ]

[ BRUSH (pattern, forecolor, backcolor) ]

[ CENTER x y ]

An arc requires the diagonally opposite corners of its bounding rectangle

and the beginning (a) and ending (b) angles of the arc in degrees, moving

counter-clockwise with zero at three o'clock. As an option, specify the arc

type. (An arc specifies a section of an ellipse, the corners of which are

determined by the bounding rectangle.)

ARC x1 y1 x2 y2

a b

[ PEN (width, pattern, color) ]

A text object consists of a text string, up to 255 characters long. To make

the text string wrap onto multiple lines, insert the characters \n within the

textstring argument (e.g. "First line \nSecond line \nThird line"). The x1,

y1, x2, and y2 arguments specify the location of the text on the map.

Spacing can be 1.0 (single spacing), 1.5, or 2.0 (double spacing). Use the

Font clause (described later in this chapter) to control the typeface, etc.

TEXT "textstring"

x1 y1 x2 y2

[ FONT... ]

[ Spacing {1.0 | 1.5 | 2.0} ]

[ Justify {Left | Center | Right } ]

[ Angle text_angle ]

[ Label Line {simple | arrow} x y ]

A rectangle requires the coordinates of the diagonally opposite corners. As

an option, specify pen and brush types.

RECT x1 y1 x2 y2

[ PEN (width, pattern, color) ]

[ BRUSH (pattern, forecolor, backcolor) ]

A rounded rectangle requires the coordinates of the diagonally opposite

corners and the degree of rounding (a). As an option, specify pen and brush

types. Degree of rounding is expressed in coordinate units.

ROUNDRECT x1 y1 x2 y2

a

[ PEN (width, pattern, color) ]

[ BRUSH (pattern, forecolor, backcolor) ]

An ellipse object requires the coordinates of the diagonally opposite corners

of its bounding rectangle. As an option, specify pen and brush types.

ELLIPSE x1 y1 x2 y2

[ PEN (width, pattern, color) ]

[BRUSH (pattern, forecolor, backcolor) ]

PEN STYLES

The Pen clause specifies the width, pattern, and color of a linear object,

such as a line, polyline or arc. The Pen clause has the following syntax:

PEN (width, pattern, color)

Width is a number from zero to 7. Note: zero-width lines are invisible.

Color is an integer, representing a 24-bit RGB color value.

Pattern is an integer from 1 to 77; patter number 1 is invisible.

Due to a limitness of a text file patterns cannot be shown, however they are

available in MapInfo Refernce book. More info can be obtained by contacting

MapInfo. (http://www.mapinfo.com on internet)

BRUSH STYLES

Brush specifies the pattern, foreground color, and background color of a

filled object, such as a circle or region. The Brush clause has the following

syntax:

BRUSH (pattern, forecolor [, backcolor ] )

The forecolor and backcolor arguments are both integers, representing 24-bit

RGB color values.

Pattern is a number from 1 to 71. Note: Pattern number 1 is "no fill," and

pattern number 2 is a solid fill. Pattern numbers 9-11 are reserved.

Tip: To specify a transparent fill style, use pattern number three or larger,

and omit the backcolor argument. For example: Brush( 5, 255 )

Due to a limitness of a text file patterns cannot be shown, however they are

available in MapInfo Refernce book. More info can be obtained by contacting

MapInfo. (http://www.mapinfo.com on internet)

SYMBOL STYLES

The Symbol clause specifies the appearance of a Point object. There are

three different forms of the Symbol clause, described below.

Symbol Clause -- MapInfo 3.0 Syntax

The Symbol clause specifies the appearance of a Point object. There are

three different forms of the Symbol clause. To specify a symbol style using

"Old MapInfo Symbols" (the symbols that were used in earlier version of

MapInfo), use the following syntax:

SYMBOL (shape, color, size)

The shape argument is an integer value, 31 or larger; 31 represents a blank

symbol (i.e. the object will not be visible). The standard set of symbols

includes symbols 32 through 67, inclusive, but the user can customize the

symbol set by using the Symbol application.

The color argument is an integer representing a 24-bit RGB color value.

The size argument is an integer from 1 to 48, representing a point size.

The following table lists the default symbols provided with Mapinfo:

Due to a limitness of a text file symbols cannot be shown, however they are

available in MapInfo Refernce book. More info can be obtained by contacting

MapInfo. (http://www.mapinfo.com on internet)

Symbol Clause -- TrueType Font Syntax

To specify a symbol style based on a character from a TrueType font, use

the following syntax:

SYMBOL (shape, color, size, fontname, fontstyle, rotation)

The fontstyle argument is an integer that controls settings such as Bold.

The following table lists the values you can use as fontstyle.

------------------------------------------------------------------------------

fontstyle value Effect on Symbol style

------------------------------------------------------------------------------

0 Plain text

1 Bold text

16 Black border around symbol

32 Drop shadow

256 White border around symbol

------------------------------------------------------------------------------

To specify two or more style attributes, add the values from the lef column.

For example, to specify Bold and Drop Shadow, use 33.

The rotation argument is a floating-point number, representing a rotation

angle, in degrees.

Symbol clause - Custom Bitmap File Syntax

To specify a symbol style based on a character from a TrueType font, use the

following syntax:

SYMBOL (filename, color, size, customstyle)

The filename argument is a text string that identifies a bitmap file (e.g.

"Arrow.BMP") in the CustSymb directory.

The customstyle argument is an integer that controls whether color and

background attributes are used. The following table lists the values

you can use as customstyle:

------------------------------------------------------------------------------

customstyle value Effect on Symbol style

------------------------------------------------------------------------------

0 Both the Shadow Background setting and the

Apply Color setting are off; symbol appears

in default states. White pixels in the bitmap

appear transparent, allowing whatever is

behind the symbol to show through.

1 The Show Background setting is on; white

pixels in the image are opaque.

2 The Apply Color setting is on; non-white

colors in the image are replaced with the

Symbol's color value.

3 Both Show Background and Apply Color settings

are on.

------------------------------------------------------------------------------

FONT STYLES

The Font clause specifies the appearance (typeface, color, etc.) or text

objects. The Font clause has the following syntax:

FONT ("fontname", style, size, forecolor [, backcolor] )

Fontname in double quotation marks is the typeface to be displayed. Style is

the text attribute of the typeface as shown in the following table. Size

must be 0 in a MIF file, because each text object on a Map is attached to

the map itself (thus the text size changes as you zoom in or out). Forecolor

is an integer representing a 24-bit RGB color. The background color is

optional; if you include it, MapInfo fills the are behind the text with the

color you specify.

------------------------------------------------------------------------------

style value Effect on Font Appearance

------------------------------------------------------------------------------

0 Plain 1 Bold

2 Italic 4 Underline

16 Outline (only supported on the Macintosh)

32 Shadow 256 Halo

512 All Caps 1024 Expanded

------------------------------------------------------------------------------

To specify two or more style attributes, add the values from the left column.

For example, to specify Bold and All Caps, use 513.

COLORS

Colors are often defined in relative concentractions of red, green, and blue.

Each color is a number from 0 to 255, inclusive; the RGB value of a color is

calculated by the following formula:

(red * 65536) + (green * 256) + blue

These are some often used colors and their values:

Red: 16711680

Green: 65280

Blue: 255

Cuan: 65535

Magenta: 16711935

Yellow: 16776960

Black: 0

MID FILE

The MID file contains data, one record of data per row, delimited by the

character specified in the delimiter statement. The default delimiter is

Tab. Each row in the MID file is associated with a corresponding object in

the MIF file; first row with first object, second row with second object.

If delimiter character is included as part of the data in a field, enclose

the field in quotation marks.

The MID file is an optional file. When ther is no MID file, all fields are blank

posted on 2008-08-14 21:41 AlanTop 阅读(2218) 评论(0)  编辑 收藏 引用 所属分类: gis数据格式


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理