MIF/MID格式简介
微信搜索:“二十同学” 公众号,欢迎关注一条不一样的成长之路
MapInfo MIF/MID文件格式描述
这种通用的格式允许把普通的数据添加到多种的图像元素中。MIF/MID文件采用ASCII编码,因此它是可编辑的、相对比较容易生成、并且可以工作在MapInfo支持的所有平台上。也许理解MIF格式的最好的方法是在读完这篇文章后,拿着MIF格式说明,研究一个MIF文件。你也可以通过“exporting files to MIF”创建你自己的MIF文件,然后在文本编辑器中好好的研究它。
MapInfo数据存在于两种文件中--图形数据存储在.MIF文件、文本数据存储在.MID文件。文本数据包括每一项记录的一行和回车,回车加换行,行之间的换行。MIF文件的数据包括两部分--文件头和数据区。文件头存放着如何创建MapInfo表格的信息;数据区存放着图形对象的解释。
下面是MIF文件头的描述(包括可选项,下表中由“[ ]”括起来的部分就是可选项)。
Version n Charset "characterSetName"[ DELIMITER "<c>" ] [ UNIQUE n,n.. ] [ INDEX n,n.. ][ COORDSYS... ] [ TRANSFORM... ]COLUMNS n<name> <type> <name> <type> … … DATA
1.Version 版本号
“Version”说明你使用的MIF格式的版本(VERSION 1, VERSION 2, VERSION 300中的一种)。Version 300,引自Mapinfo 3.0,允许形容由多段组成的折线对象。
2.Charset 字符集
“Charset”指定表中创建文本所使用的字符集。比如说:"WindowsLatin1"说明文件使用的是the Windows US & Western Europe字符集;"MacRoman"说明文件使用的是the Macintosh US & Western Europe字符集;或者,注明"Neutral"是为了防止将文本转成了另外的字符集。如果你没有使用其中任何一个字符集,你可以通过exporting a table和examining the .MIF file in a text editor为你的字符集指定正确的语法。
3.Delimiter 分隔符
指定引号(即""或者'')之间的分隔符,比如说:
DELIMITER ";"
默认的分隔符是Tab;如果你使用的是默认分隔符,你不需要“DELIMITER”这一行。
4.Unique
指定一个数字。这个数字指定一个数据库的列;3是第三列,7是第七列,以此类推。发生在UNIQUE指定的列上的事情是微妙的。比如说,想象一下你建立一个高速公路的数据库。每一条路都只有一个名字,但是在每一路段中都会把名字重写一遍。这时你会把NAME这一列放在一个单独的表中,而包含每个路段的信息的其他列不会放在那个表中。这样就可以创建两个相关的表格:一个NAME表,一个包含其他信息。This is how MapInfo's various street maps(StreetInfo) are prepared.
5.Index 索引
“Index”指明表中已经建立索引的列,“INDEX”项包括一个数字(或者一系列数字)。每一个数字指定一个数据库的列;3是第三列,7是第七列,以此类推。在“INDEX”表中指定的列会建立索引。
6.CoordSys
指定“COORDSYS”项表示数据不是以经纬度的形式存储的。当没有指定“COORDSYS”这一项时,数据被认为是以经纬度的方式存储。All coordinates are stored with respectto the northeast quadrant.。 在美国的点的x坐标为负而在欧洲的点(Greenwich以东)的坐标为正。在北半球的点的y坐标为正而在南半球的点的坐标为负。
7.Transform 转换
你可以通过“Transform”实现地理元素的坐标转换。
--------------------------------------------
| Quadrant 2: | Quadrant 1: |
| Nortwest Quadrant | Norteast Quadrant |
--------------------------------------------
| Quadrant 3: | Quadrant 4: |
| Southwest Quadrant | Southeast Quadrant |
--------------------------------------------
8.Columns 列
指定列数。然后,为每一列,建立一行(包括the column name、the column type、一个用来指定域长度的数字--仅为character和decimal类型的列建立)用来说明其格式。有效的列类型包括:
char(width)
integer [说明:which is 4 bytes, from -2^31 to 2^31-1]
smallint [说明:which is 2 bytes, so it can only store numbers between -32767 and +32767)]
decimal (width, decimals)
float
date
logical
下面是mif文件头的COLUMNS部分的一个例子:
STATE char (15)
POPULATION integer
AREA decimal (8,4)
通过上面指定的数据库,我们知道对应的MID文件有三列:
列名 列类型
STATE char(15) 15位长的字符串
POPULATION INTGER 整型
AREA decimal(8,4) 一个最长8位、小数点后有4位的小数
MIF文件的“data”部分紧跟着文件头并且必须由一个单行“DATA”引出:
DATA
MIF文件的数据部分可以包括任意长度的图形变量,其中每一项对映着一个图形对象。MapInfo自动使MIF和MID文件里面的每一条相一致,比如说:MIF文件的第一个object对应着MID文件的第一行,MIF文件的第二个object对应着MID文件的第二行。
当MIF文件中没有图形对象与MID文件的行对应时,一个“blank”对象必须写在MIF文件中相应的位置。
NONE
图形对象可以被指定为如下几种类型:
point //点
line //线
polyline //折线
region //区域
arc //弧
text //文本
rectangle //矩形
rounded rectangle //圆矩(即4个角做“钝化”处理的矩形)
ellipse //椭圆
MIF/MID格式简介相关推荐
- mysql mapinfo_MapInfo TAB和MIF/MID
MapInfo TAB和MIF/MID¶ 司机简称 MITAB Driver built-in by default This driver is built-in by default 本机(TAB ...
- Java gdal .mif/.mid文件读取
上一篇研究了 Windows10 64位 Python读取.mif/.mid文件并转成txt 今天研究一下Java读取MIF. 俩种解决办法: (1)Python程序读取.mif/.mid转成txt, ...
- [转载]LEB128格式简介(CN)
[转载]LEB128格式简介(CN) LEB128即"Little-Endian Base 128",基于128的小印第安序编码格式,是对任意有符号或者无符号整型数的可变长度的编码 ...
- RGB与YUV格式简介
(1) RGB格式简介 RGB色彩模式是一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的.图像中每一个像素的RGB分量都分配一个0~25 ...
- SDI视频数据流格式简介(频率、速率、YUV、EAV、SAV)
文章目录 SDI视频格式简介 SDI视频流数据格式 示意图 SDI视频格式简介 常见的SDI视频格式主要包括SD-SDI.HD-SDI.3G-SDI三种,其比特率依次增加,也对应着不同分辨率和刷新 ...
- 音频格式简介和PCM转换成WAV
1 音频格式简介 AudioRecord录制的音频文件格式为PCM,MediaPlayer无法播放PCM格式文件,AudioTrack可以播放PCM格式文件. PCM(Puls Code Modula ...
- http报文格式简介
前端和后端的沟通其实和我们生活中人与人之间的沟通是一样的,也是一种通信,只不过是计算机之间的通信.人与人之间之所以能沟通是因为我们遵循了同一种规则(协议)--语言.通信的双方只有遵循一种共同的通信协议 ...
- Java JSON格式简介说明
转自: Java JSON格式简介说明 下文笔者讲述java中JSON格式的相关简介说明,如下所示: JSON简介说明 JSON(JavaScript Object Notation) 是一种轻量级的 ...
- json格式简介和相关操作
前言:在日常工作中,我们常常会使用json做一些数据的处理,那了解json的一些基础知识和相关操作就尤为重要,本篇就是对于json格式的概括介绍和简单使用. 1.json格式简介 1.1 json基本 ...
- mapinfo mif/mid文件格式详解
MapInfo MIF/MID file format description (from Appendix A of MapInfo Reference) This appendix describ ...
最新文章
- LeetCode 604. 迭代压缩字符串
- anaconda下载的python在哪_python包管理器anaconda介绍安装和使用
- Linux more和less
- 微信小程序和传统网页开发的区别
- 花书+吴恩达深度学习(十二)卷积神经网络 CNN 之全连接层
- ae怎么卸载已经安装的插件_ae红巨人插件卸载教程!
- 莫名其妙的解决了MagicDraw中文问题
- elasticsearch 如何清理过期的数据
- Unity 资源断舍离(资源清理重复以及引用被引用查找)
- SFDC中的DEBUG
- YIGO标准平台解决模态窗口不能刷新父界面的方法
- html容器自定义宽高比,容器长宽比_aspect-ratio, 宽高比, 会员专栏 教程_W3cplus
- python 推导式练习题
- U-boot 对UEFI的支持
- 修改机顶盒设置移动焦点颜色
- PHP:preg_match
- 结对编程项目-四则运算整体总结
- 知乎高赞回答:为什么高级程序员不必担心自己的技术过时?
- 大数据相加_大数据如何快速求和 excel大数据批量求和
- linux终端命令大全
热门文章
- vmpalyer虚拟机的使用教程,小白也能看懂
- 使用GenyMotion模拟器+抓包工具SRSniffer分析网络请求
- linux 安装so文件,Linux下查找和安装依赖的.so文件
- Hyperchain 超块链创始人史兴国对谈杨民道:新公链赛道烽烟再起,move语言能开启下一轮牛市吗?
- 微信支付一面(C++后台)
- wps打开pdf乱码_wps打开pdf乱码
- 计算机二级vb题库公众号,计算机二级vb题库
- python app开发框架_Python可以开发APP吗?用哪个框架?
- atmega328 48手动解锁 擦除
- navicat运行db文件_在 Navicat for MongoDB 使用文档