-
Mapinfo Mif文件格式说明
具体有什么用呢?可以提取Mapgis的区,线的坐标信息。
http://blog.csdn.net/gisfarmer/archive/2008/12/30/3647114.aspx
MIF是Mapinfo用来向外交换数据的一种中间交换文件。当用户在Mapinfo中将一张Mapinfo地图表以MIF格式转出来MIF文件中后,Mapinfo会同时在用户指定的保存目录下生成两个文件(*.mif,*.mid)。其中*.mif文件保存了该Mapinfo表的表结构及表中所有空间对象的空间信息(如:每个点对象的符号样式、点位坐标;每个线对象的线样式、节点数据、节点坐标;区域对象的填充模式、每个区域包含的子区域个数及每个区域的节点数、节点数等)。而*.mid文件则按记录顺序保存了每个空间对象的所有属性信息。这两个文件都为文本性质的文件,用户可以通过相应的文件读写方法实现对文件内容的读写。
MapInfo 数据在两个文件中——图形保存在.MIF 文件中而文本数据包含在.MID
文件中。文本数据是分界数据,每行一个记录以及行间的回车,或者回车加换行,或者换行。MIF
文件有两个区域—文件头区域和数据节。有关如何创建MapInfo表的信息保存在文件头中;图形对象定义保存在数据节中。
这是一个MIF 文件头的说明,方括号内是可选信息。MIF File header 格式:
Version n
Charset “characterSetName”
[ DELIMITER "" ]
[ UNIQUE n,n.. ]
[ INDEX n,n.. ]
[ COORDSYS... ]
[ TRANSFORM... ]
COLUMNS n
…
…
DATA
Version
子句说明您所使用的是VERSION 1、VERSION 2、VERSION 300还是VERSION 450
格式。
Charset
子句指定在表中创建文本时使用的字符集。
Delimiter
在引号中指定分隔符,缺省情况下,分隔符是TAB键;如果使用缺省值,则无需DELIMITER行。
Unique(唯一)
指定一个号码。这个号码指示数据库的一列;
Index(索引)
要指出表中的列有索引,可以在Index子句中引入一个号码(或一系列用逗号分隔的号码)。每个号码代表数据库的一列;INDEX
列表中的列将有附录为它们制作的索引。
CoordSys(坐标系统)子句指定COORDSYS子句以注明数据不是以经度/纬度形式保存的。未指定COORDSYS子句时,假定数据是以经度/纬度形式保存的。所有坐标都是以相对于东北象限的值保存的。(
其中一些参数设置比较复杂)
Columns(列)
指定列数。然后为每列创建一行,它包含列名、列类型,对于字符列和小数列,还包含一个指示字段宽度的数。
有效的列类型是:
l char(宽度)
l integer(4 个字节)
l smallint(2 个字节,因此只能存储从-32767 到+32767 的数)
l decimal(宽度,小数位数)
l float
l date
l logical
MIF文件的数据节在文件头之后,且必须由DATA 以单独的一行引入:
DATA
MIF文件的数据节可以有任意多个图形初值,每个初值代表一个图形对象。MapInfo使MIF和MID
文件中的条目相互匹配,MIF文件中的第一个对象与MID文件中的第一行关联,MIF文件中的第二个对象与MID 文件中的第二行关联,依此类推。如果MID
文件中特定的一行没有对应的图形对象,那么必须在MIF 文件中的相应位置上写一个“空白”对象(NONE)以保留该位置。
NONE
可以指定的图形对象为:
l 点(point)
l 直线(line)
l 折线(polyline)
l 区域(region)
l 圆弧(arc)
l 文本(text)
l 矩形(rectangle)
l 圆角矩形(rounded rectangle)
l 椭圆(ellipse)
一个点(point)对象需要两个参数:一个X 坐标和一个Y坐标。作为一个选项,可以设定代表该点的symbol(符号)。symbol
是用数字标明的。如果忽略了SYMBOL 子句,则使用当前symbol。
POINT x y
〔 SYMBOL (shape, color, size)〕一个直线(line)对象需要四个参数;每个端点各一个X 坐标和一个Y 坐标。作为一个选项,可以指定pen
类型。如果没有指定pen类型,则使用当前pen 类型。
LINE x1 y1 x2 y2
〔 PEN (width, pattern, color)〕一个折线(polyline)对象由一节或多节构成。如果该折线不止一节,则应包含MULTIPLE
关键字,并在其后写明节数。为每节设定一个numpts 参数(该参数指出该节中节点的数量),
其后为每个节点的x/y坐标对。用可选的PEN 子句(本附录稍后说明)来指定线样式。如果包含了可选的SMOOTH 关键字,则折线被平滑。PLINE 〔 MULTIPLE numsections 〕
numpts1
x1 y1
x2 y2
:
〔 numpts2
x1 y1
x2 y2 〕
:
〔 PEN (width, pattern, color)〕
〔 SMOOTH 〕一个区域(region)对象由一个或多个多边形构成。用numpolygons 参数设定多边形数量(紧
跟在REGION 关键字后面)。为每个多边形设定一个numpts参数(该参数指出该多边形中节点的数量),其后为每个节点的x/y坐标对。用可选的PEN
和BRUSH 子句(本附录稍后说明)指定该对象的样式。用可选的CENTER子句来精确定义该对象的中心位置。中心必须位于对象内。
REGION numpolygons
numpts1
x1 y1
x2 y2
:
〔numpts2
x1 y1
x2 y2 〕
:
〔 PEN (width, pattern, color)〕
〔 BRUSH (pattern, forecolor, backcolor)〕
〔 CENTER x y 〕一个圆弧(arc)需要其外接矩形的对角位置以及该圆弧的起点(a)和终点(b)的角度,其中角度以度的形式表示,以时钟上三点钟处为零点反时针移动。作为一个选项,可以指定pen类型。(一段圆弧指定了一个椭圆的一段,圆弧的两角由外接矩形确定。)
ARC x1 y1 x2 y2
a b
〔 PEN (width, pattern, color)〕一个文本(text)对象由一个文本字符串构成,不超过255个字符。要使文本字符串换行成多行,可在textstring参数内插入字符\n(例如“第一行\n
第二行\n第三行”)。x1、y1、
x2和y2 指定了文本在地图上的位置。间隔可以是1.0(单间距)、1.5 或2.0(双间距)。
用Font 子句来控制字体等等。
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 〕一个矩形(rectangle)需要一对对角的坐标。作为选项,可以指定pen和brush类型。
RECT x1 y1 x2 y2
〔 PEN (width, pattern, color)〕
〔 BRUSH (pattern, forecolor, backcolor)〕一个圆角矩形(rounded rectangle)需要一对对角的坐标和圆的角度(a)。作为选项,可以指定pen 和brush
类型。圆角的角度用坐标单位表示。
ROUNDRECT x1 y1 x2 y2
a
〔 PEN (width, pattern, color)〕
〔 BRUSH (pattern, forecolor, backcolor)〕一个椭圆(ellipse)对象需要其外接矩形的一对对角的坐标。作为选项,可以指定pen 和brush类型。
ELLIPSE x1 y1 x2 y2
〔 PEN (width, pattern, color)〕
〔 BRUSH (pattern, forecolor, backcolor)〕Pen样式
Pen 子句设定诸如直线、折线或圆弧此类的线性对象的宽度、图案和颜色。Pen 子句有如下语法:
PEN (width, pattern, color)
Width 是从1 到7 的一个数。1-7 是屏幕象素的宽度。11-2047是要转换为点的数值:
penwidth = (点数 * 10) + 10
0 只有在针对不可见的线,笔模式为1时才有效。
color 是一个整数,表示一个24 位的RGB
颜色值。
Pattern是一个从1到118的整数,模式号为1时可见。模式号和画笔文件中画笔号相对应。可以用画笔编辑器来编辑画笔文件。
有效的画笔号是从1 到画笔文件中最大的画笔号,应该不超过127。如果一个画笔样式是交叠的,就增加128
作为其画笔号。交叠样式在 129-255范围之内。由于画笔文件可以修改,而且交叠也可以指定,所以画笔模式可以是1-255之间的数。Brush 样式
Brush 设定诸如圆或区域这样的填充对象的图案、前景颜色和背景颜色。Brush 子句有如下语法:
Brush (pattern, forecolor 〔, backcolor 〕)
forecolor(前景颜色)和backcolor(背景颜色)参数都是整数,代表24 位RGB 颜色值。
pattern(图案)是一个1 到71 之间的数。注意:1 号图案是“不填充”而2号图案是纯色填充。Symbol 样式
Symbol 子句设定点对象的外观。Symbol 子句有三种格式,如下所述。
Symbol子句——MapInfo 3.0语法
Symbol 子句设定一个点对象的外观。Symbol 子句有三种格式。要设定一种使用“Old MapInfo
Symbols”(MapInfo早期版本使用的符号)的Symbol 样式,使用如下语法:
SYMBOL (shape, color, size)
shape(形状)参数是一个整数值、31 或更大;31代表空白symbol(即该对象是不可见的)。标准symbol
集合包括32 到67号symbol,但用户可以用Symbol 应用程序来自定义symbol集合。color(颜色)参数是一个整数,代表一个24 位RGB
颜色值。size(大小)参数是一个1 到48 之间的整数,代表点的尺寸。Symbol子句——TrueType字体语法
要设定一个基于TrueType 字体的字符的Symbol 样式,使用如下语法:
SYMBOL (shape, color, size, fontname, fontstyle, rotation)
fontname(字体名称)参数是一个文本字符串,指明一个字体的名称(例如“Wingdings”)。
fontstyle(字体样式)参数是一个控制样式设置(例如粗体)的整数。Symbol子句——自定义位图文件语法
要设定一个基于自定义位图文件的symbol 样式,使用如下语法:
SYMBOL (filename, color, size, customstyle)
filename(文件名)参数是一个文本字符串,它标明了CustSymb
目录中的一个位图文件(例如“Arrow.BMP”)。 customstyle(自定义样式)参数是一个整数,控制是否使用颜色和背景属性。Font样式
Font 子句设定文本对象的外观(字体、颜色等)。Font 子句有如下语法:
FONT (“fontname”, style, size, forecolor 〔, backcolor〕 )双引号内的 fontname(字体名称)是被显示的字体。style(样式)是字体的文本属性。MIF文件中的size(大小)必须是0,因为一幅地图上的文本对象是附加到该地图上的(这样在放大或缩小时文本尺寸改变)。forecolor(前景颜色)是一个整数,代表一种24位RGB
颜色。backcolor(背景颜色)是可选的;如果包含了它,则MapInfo在文本背后的区域中填充指定的颜色。颜色
颜色通常是以红、绿和蓝色的相对浓度来定义的。其中每种颜色是一个0到255包括0和255之间的数;各种颜色的RGB 值由以下公式计算:
(红色 * 65536)+(绿色 * 256)+蓝色
这里是一些常用颜色及其数值:
红色:16711680
绿色:65280没有评论 -
2010温家宝答记者问精彩言论
[温家宝]:我知道商签协议是一个复杂的过程,但是正因为我们是兄弟,兄弟虽有小忿,不废懿亲,问题总会可以解决的。我去台湾的愿望依旧是那么强烈,因为我认为中华民族5000年的文化,具有强大的震撼力和凝聚力,不要因为50年的政治而丢掉5000年的文化。
-
由Surfer的等值线Srf文件直接得到网格Grd文件
有的时候,仅仅只有Srf工程文件,没有网格文件。
比如网格文件丢失,比如对方仅仅给了Srf工程文件,在需要对数据进行琢磨时可以利用如下办法得到网格文件
打开Surfer等值线,选中,运行如下Surfer脚本语言
Sub Main
Dim Surf As Object
Dim plotdoc1 As Object
Dim shapes1 As Object
Dim mapframe1 As Object
Dim ovrly As Object
Dim grd As StringDebug.Print “—– “;Time;” —–”
Set Surf = GetObject(,”surfer.application”)
Set plotdoc1 = Surf.ActiveDocument
Set shapes1 = plotdoc1.Shapes
Set mapframe1 = plotdoc1.Selection(1)
For Each ovrly In mapframe1.Overlays
‘Vector map Not included. srfShapeVectorMap = 23.
Debug.Print ovrly.Type;InStr(” 15 16 19 20 22″, ovrly.Type)
If InStr(” 15 16 19 20 22″,ovrly.Type) <> 0 Then _
ovrly.Grid.SaveFile(GetFilePath(ovrly.Grid.FileName,”grd”, _
“c:\incoming\”,”Save GRD File”,3),Surfer.srfGridFmtS7)
Next ovrly
EndEnd Sub
即可
-
2009小结
2009的牛尾巴,在此地,我没有留下一点信息。
2010的虎头,在此地,突发感慨,回望2009。
2009过得如此之快,快得让我来不及回味,快得让我来不及体会。
- 年度最热门地点:广西
- 年度最热门交通工具:火车
- 年度最佳浏览器:Firefox,UCWeb
- 年度最佳输入法:微软拼音2010 Beta 2
- 年度最喜悦事情:伴
- 年度最遗憾事情:我
- 年度最悲伤事情:朋友
大批的时光献给了广西。时光在流水中趟过,在小桥上滑过,在大山里走过。
等火车是种心情,坐火车也是种心情。旅游是种心情,出差也是种心情。
好几位朋友找到了陪伴他们一辈子的伴侣。能够分享这种喜悦,也是种喜悦。
望来望去,望不到那一个人
在2009即将结束之际,一位朋友失去了最爱她的父亲。亲情之疼,无以复加。一切会好起来的,姑娘!
-
半夜三更
房东家某个小男孩,一岁多点,正是开始有点思维有点互动有点学习有点可爱的年段。
小男孩,近一岁时,像泥鳅一样,在地上爬来爬去,追也追不到。偶然一天,大人们发现他的两条小腿有了一点点
力量,便有意识地练习他的站立能力。谁也无法捕捉他第一次站立一秒钟时的心情和感受。我想他应该是渴望欣喜和雀跃的。他会意识到自己站立的某种意义,他会笑,他会胆小地躲到大人的怀里,他会聪明地一屁股坐到地上。
后来,小男孩跟他年轻的妈妈去了广东,在他父亲打工的地方,学走路学说话。在他爸爸为了家庭辛苦劳作的时候,也许他说出口的第一个词是“爸爸”。
等小男孩回到家,他已经会迈着步伐咕咚咕咚地走着咯吱咯吱地笑着。他走得和利索,很欢快,很随心所欲。大大的屋子没有他去不了的地方。他的妈妈已经有点吃力了。端着饭碗,拿着他需要添加的衣服在他的后面追着。在你眨眼的功夫,他可以钻到他喜欢的地方去。
小男孩还不怎么会说话。他有时候很沉默,抗议的时候会“嗯嗯”附和几声。他有时候很吵闹,有他自己的语言,肆无忌惮。我教他喊叔叔,用普通话,用湖南话,用广西白话,他偶尔会应合一声,一点点近似的声音,足以让我快乐高兴。
小男孩,喜欢动。抱着他,牵着他,在屋子里乱跑,他最高兴,啊啊叫着。
小男孩,喜欢看电视。我抢着房东家的电视看的时候,他偶尔会走过来,抢过遥控,有模有样的按着。甚至,他会直接走向电视,在电视操作面板上按着。
小男孩,喜欢音乐。有唱歌跳舞的节目,十分开心。我们如果引导他跳舞,他会很高兴地扭动着,咦咦叫着,有着歌厅里迪斯科的范儿。
然而,就在最近,
小男孩,习惯了半夜三更,睡醒,哭闹。
谁也无法理解,他是饿了还是失眠还是找不到他的“布娃娃了”。
其实所谓的布娃娃,是小男孩的一件小衣服,像绳索一样打了一个节。小男孩的妈妈说,小男孩不喜欢娃娃,却十分喜欢这件衣服。他没事的时候,总是一只手抱着这件衣服,在房间里跑来跑去。有人抢走了衣服,他便哇哇大哭。莫非,衣服上有他断奶前的味道?
小男孩三更半夜哭的时候,他的母亲没有一点办法。每次哭的时候,我都会醒。看看表。
小朋友,你是不是因为醒了,找不到了“布娃娃”衣服而哭呢?
没人知道。
反正,现在,他已经醒过,哭过一次了。