Форум картографов, карты MapInfo, Google maps

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Форум картографов, карты MapInfo, Google maps » MapInfo » Описание формата MIF/MID


Описание формата MIF/MID

Сообщений 1 страница 10 из 10

1

Код:
Формат обмена данными Mapinfo

  В   этом  приложении  описан  формат  обмена  данными  Mapinfo.  В
частности, здесь описаны:
  - Заголовок файла формата MIF.
  - Секция данных в файлах формата MIF.
  - Коды  типов  линий,  штриховки, символов  и  шрифтов  в  файлах
формата MIF.
  - Файл формата MID.
  - Примеры файлов.
  Этот   универсальный   формат  позволяет  сопоставлять   различным
графическим   элементам  настраиваемые  данные.  MIF-файл   является
текстовым   (ASCII),   поэтому   файлы   в   таком   формате   можно
редактировать,  достаточно  легко  генерировать,  причем  они  будут
работать   в   любых  системах,  где  работает  Mapinfo.   Возможно,
оптимальным  способом  изучения  Mapinfo  Interchange  Format  (MIF)
является просмотр примера, приведенного в конце этого приложения, по
ходу  чтения описания формата. Вы можете также создать свои примеры,
экспортировав какие-нибудь файлы в формат MIF, а затем просматривать
их в текстовом редакторе.
  Данные  Mapinfo  хранятся  в  двух  файлах графическая  информация
содержится  в  файлах  с расширением .MIF, а текстовая  в  файлах  с
расширением  .MID.  Каждая  строка текстовых  данных  отделяется  от
следующей  строки либо символом возврата каретки (Carriage  Return),
либо  возврата  каретки  вместе с новой строкой  (Line  Feed),  либо
только  символом  новой  строки. MIF-файл состоит  из  двух  частей:
заголовка  и  секции данных. Заголовок файла содержит  информацию  о
том,  как  создавать  таблицы  Mapinfo,  а  секция  данных  содержит
определения графических объектов.

  Заголовок файла формата MIF
   Заголовок файла формата MIF имеет следующий вид (в квадратные
скобки взята информация, которая может отсутствовать).

VERSION n
[ DELIMITER "<с>" ]
[ UNIQUE n,n.. ]
[ INDEX  n, n.. ]
[ COORDSYS...]
[ TRANSFORM...]
COLUMNS n
<имя> <тип>
<имя> <тип>
.
.
.
  Как  было  сказано  выше, Вы должны указать, к какой  версии  MIF-
формата относится файл: VERSION 1 или VERSION 2. В версии Version  2
могут присутствовать предложения COORDSYS и TRANSFORM.

  Delimiter (Разделитель)
  Здесь  в  двойных  кавычках указывается символ,  использующийся  в
качестве  разделителя, например: DELIMITER ";". Стандартное значение
разделителя  -  символ  табуляции;  при  использовании  стандартного
разделителя строка DELIMITER может быть опущена.

  Unique (Уникальная колонка)
  Здесь  задается  число.  Это число указывает  на  столбец  в  базе
данных:  3 указывает на третий столбец, 7 - на седьмой и так  далее.
Что   происходит  со  столбцами,  перечисленными  в  списке  UNIQUE?
Представим,  например, что имеется база данных о шоссейных  дорогах.
Каждому  шоссе соответствует единственное название, но  шоссе  может
распадаться  на  несколько участков (которым сопоставлены  отдельные
записи). Поместите столбец NAME в список UNIQUE, а столбец сегментов
не  указывайте  в  этом  списке.  В  результате  будут  созданы  две
соединенные  таблицы:  таблица  имен  и  таблица  прочих   атрибутов
объектов.  Именно  таким образом разрабатывались  различные  таблицы
улиц для Mapinfo (таблицы Streetinfo).

  Index (Индекс)
  Здесь  задается  число.  Это число указывает  на  столбец  в  базе
данных:  3 указывает на третий столбец, 7 - на седьмой и так  далее.
Для столбцов, перечисленных в списке INDEX, создаются индексы.

  Предложение CoordSys (Координатная система)
  Предложение COORDSYS задается для того, чтобы указать, что  данные
хранятся  HЕ  в  форме  широты/долготы.  Если  предложение  COORDSYS
отсутствует,  то  предполагается,  что  данные  приведены  в   форме
широта/долгота.
  Все    координаты    приводятся   относительно   северо-восточного
квадранта. Координаты объектов на территории США имеют отрицательную
координату X, а координаты объектов в России и Европе (к востоку  от
Гринвича)  имеют  положительные координаты  по  оси  X.  Объектам  в
северном  полушарии  соответствуют  положительные  координаты  Y,  а
объектам в южном полушарии - отрицательные координаты Y.

  Предложение Transform (Преобразование)
  Если   в   файле  MIF  записаны  координаты  относительно  северо-
западного квадранта (квадрант 2), то Вы можете задать преобразование
этих   координат  к  северо-восточному  квадранту  (квадрант  1)   в
предложении Transform.

  Квадрант 2:                           Квадрант 1:
  Северо-западный квадрант              Северо-восточный квадрант

  Квадрант 3:                           Квадрант 4:
  Юго-западный    квадрант              Юго-восточный квадрант

  Данное  предложение  имеет следующую форму: TRANSFORM  множительХ,
множительY, смещениеХ, смещениеY
  Чтобы  задать преобразование из данных по квадранту 2 в данные  по
квадранту 1, задайте следующее предложение Transform:
   TRANSFORM -1,0,0,0
  Hули означают, что Mapinfo игнорирует данные параметры.
  Если  Вы  работаете с программой, создающей файлы  формата  MIF  с
координатами для квадранта 2, Вы можете:
  - добавлять предложения TRANSFORM в файлы MIF;
  -  внести изменение в программу, чтобы она вырабатывала координаты
для квадранта 1;
  -  внести  изменение в программу, чтобы она добавляла  предложение
TRANSFORM в каждый MIF-файл.

  Columns (Колонки)
  Здесь  задается  число  столбцов. Затем,  для  каждого  столбца  в
отдельной строке указывается название столбца, тип данных в  нем,  а
также  размер  поля  (для столбцов, содержащих строки  и  десятичные
числа). Возможны следующие типы столбцов:
  - char (длина поля)
  - integer (4 байта)
  - smallint (2 байта, так что допустимы числа в диапазоне от
-32767 до +32767)
  - decimal (длина поля, число цифр после запятой)
  - float
  - data
  - logical
  Вот пример раздела столбцов в заголовке:
   COLUMNS 3
   STATE char (15)
   POPULATION Integer
   AREA decimal (8,4)

  Файл  MID должен содержать следующие три столбца данных, указанные
в заголовке:
  столбец STATE: 15-символьное поле;
  столбец POPULATION: поле целых чисел;
  столбец AREA: поде десятичных чисел, состоящих из не более  чем  8
цифр, в том числе из 4 цифр после запятой.

  Секция данных в файлах формата MIF
  Секция  данных  в  файлах формата MIF следует  после  заголовка  и
должна начинаться со слова DATA на отдельной строке:
   DATA
  Секция  данных  MIF-файла может содержать любое число  графических
примитивов,  по  одному  для каждого графического  объекта.  Mapinfo
сравнивает  разделы  файлов формата MIF и MID,  сопоставляя  первому
объекту  в  MIF-файле первую строку MID-файла, второму объекту  MIF-
файла вторую строку MID-файла и так далее.
  Если    для   строки   MID-файла   не   найдено   соответствующего
графического  объекта,  то  создается  "пустой"  объект   (NONE)   в
соответствующей позиции MIF-файла.
   NONE
  Могут использоваться следующие графические объекты:
  - точка
  - линия
  - ломаная
  - область
  - дуга
  - текст
  - прямоугольник
  - скругленный прямоугольник
  - эллипс
  Объект  типа точка имеет два параметра: координату Х и  координату
Y.  Может также быть указан вид символа, которым обозначается данная
точка.  Для  символа указывается номер. Если не  задан  символ,  для
обозначения точки используется текущий символ.
   POINT   x у [ symbol (вид, цвет, размер)]
  Объект  типа  линия  должен иметь четыре  обязательных  параметра;
координаты  Х и Y для двух концевых точек. Может также  быть  указан
тип  линии.  Если  тип линии не задав, то используется  текущий  тип
линий.
   LINE   х1 у1 х2 у2 [ PEN (ширина, тип, цвет) ]
  Для  объекта типа ломаная должны быть заданы координаты Х и Y  для
всех вершин ломаной. Число вершин (numpts) ломаной указывается после
ключевого  слова PLINE. Может также быть указан тип линии и  наличие
сглаживания. Если явно не указано, что ломаная сглажена (SMOOTH), то
предполагается, что она не сглажена.
   PLINE numpts x1 y1 x2 y2
   :
   [ PEN (ширина, тип, цвет) ] [ SMOOTH ]
  Объект  типа  область  может состоять  из  одного  или  нескольких
многоугольников.  Для  каждого многоугольника  должны  быть  указаны
координаты Х и Y всех вершин в таком виде:
   nunpts список координат numpts2 список координат
  Может  также быть указан тип линий, штриховок и центроид  области.
Указание центроида  сокращает время импорта и экспорта.
   REGION #pgons numpts1 x1 y1 x2 y2
   numpts2 х1 у1 х2 y2
   [ PEN (ширина, тип, цвет) ]
   [ BRUSH (шаблон, основной_цвет, цвет_фона} ]
   [ CENTER х у ]
  Для  объекта  типа  дуга  должны быть указаны  противоположные  по
диагонали  углы описанного прямоугольника, а также начальный  (a)  и
конечный  (b)  углы  дуги  в градусах, считая  против  хода  часовой
стрелки (нуль в положении стрелки в 15.00). Может также быть  указан
тип линии.
   ARC x1 y1 х2 у2 а b [ PEN (ширина, тип, цвет) ]
  Для  текстового  объекта  должен быть указан  собственно  текст  в
кавычках,  а  также противоположные углы описанного  прямоугольника.
Может также быть задан шрифт.
   text "<строка текста>" x1 у1 х2 у2
   [ FONT...]
   [ Spacing {1.011.512.0}]
   [ Justify {Left | center | Right}]
   [ Angle угол_поворота]
   [ Label Line {simple | arrow} x у ]
  Для  прямоугольника задаются координаты его противоположных углов.
Может также
быть указан тип линий и штриховки.
   RECT х1 у1 х2 у2
   [ PEN (ширина, тип, цвет) ]
   [ BRUSH (шабпон, основной_цвет, цвет_фона)]
  Для    скругленного   прямоугольника   задаются   координаты   его
противоположных углов, а также степень сглаживания (а). Может  также
быть указан тип линий и штриховки.
  Степень сглаживания выражается в координатных единицах.
   ROUNDRECT X1 у1 х2 у2 а
   [ PEN (ширина, тип, цвет) ]
   [ BRUSH (шаблон, основной_цвет, цвет_фона} ]
  Для  эллипса задаются координаты противоположных углов  описанного
прямоугольника.
  Может также быть указан тип линий и штриховки.
   ELLIPSE х1 у1 х2 у2
   [ PEN (ширина, тип, цвет}]
   [ BRUSH (.шаблон, основной_цвет, цвет_фона}]


  Коды типов линий, штриховки, символов и шрифтов в файлах формата
  MIF

  Pen (Линия)
  Pen  задает  ширину, тип и цвет линии в виде: PEN (  ширина,  тип,
цвет)
  Ширина  задается числом от 0 до 7, тип - числом от 1 до  77.  Hиже
приводится таблица, содержащая типы линий и их коды. Цвет задается в
виде 24-битового RGB значения.
  Типы  линий  обозначаются кодами от 1 до 77. Эти типы приведены  в
этой таблице:

>   <<Таблица скип>>

  Примечание:  В таблице нет примера для типа с кодом 1.  Тип  номер
одни - это нулевая линия, отсутствие линии на рисунке.

  Brush (Штриховка)
  Brush  задает  шаблон, основной цвет и цвет фона:  Brush  (шаблон,
основной_цвет, цвет_фона)
  Шаблон  задается  числом  от  1 до 71.  Hиже  приводится  таблица,
содержащая типы шаблонов и их коды. Цвет задается в виде 24-битового
RGB значения. В шаблоне с номером 1 оба цвета отсутствуют. В шаблоне
2  отсутствует  цвет  фона. В шаблонах 1 и  2  цвет  фона  считается
неопределенным.

>   <<Таблица скип>>

  Шаблоны с кодами 9-11 зарезервированы для внутренних целей.

  Symbol (Символ)
  Symbol  задает  вид,  цвет и размер символа:  SYMBOL  (вид,  цвет,
размер)
  Вид  символа  задается в виде числа от 32 до 62. Цвет  задается  в
виде  24-битового RGB значения. Размер приводится в точках: от 1  до
48.
  Формы символов и их коды приводятся в следующей таблице:

>   <<Таблица скип>>

  Font (Шрифт)
  Font  задает название шрифта, его стиль, размер, основной  цвет  и
цвет фона :
  FONT ("название_шрифта", стиль, размер, основной_цвет [,цвет_фона])
  Hазвание  шрифта заключается в двойные кавычки. Стиль -  это  один
из  атрибутов шрифта, приведенных в таблице ниже. Размер в файле MIF
должен  быть равен 0. Основной цвет задается в виде 24-битового  RGB
значения.

СТИЛЬ  Bold   Italic  Underline
0
1      ВКЛ
2             ВКЛ
3      ВКЛ    ВКЛ
4                     ВКЛ
5      ВКЛ            ВКЛ
6             ВКЛ     ВКЛ
7      ВКЛ    ВКЛ     ВКЛ

  Color (Цвет)
  Color задает цвет объекта: Color: число
  Цвета  чаще  всего  задаются в долях красного, зеленого  и  синего
оттенков RGB. Каждому оттенку соответствуют номера от 0 до 255; RGB-
значение для цвета вычисляется по формуле:
   (красный * 65536) + (зеленый * 256) + синий
  Вот несколько наиболее часто используемых значений:
  Красный: 16711680
  Зеленый: 65280
  Синий: 255
  Голубой: 65535
  Фиолетовый: 16711935
  Желтый: 16776960
  Черный: 0

  Файл формата MID
  Файл   формата   MID   содержит  записи,  между   которыми   стоят
разделители,   заданные   в   предложении   Delimiter.   Стандартный
разделитель   -   символ  табуляции.  Каждая  строка   в   MID-файле
соответствует  объекту  в  MIF-файле:  первая  строка  соответствует
первому объекту, вторая строка   второму объекту и так далее.
  Если  символ-разделитель является частью записи,  заключите  такую
запись в двойные кавычки.
  Файл  формата  MID  может отсутствовать. В этом  случае  создаются
пустые поля.

  Примеры файлов
  В  приводимых файлах описаны объекты, показанные на рисунке  ниже.
В этих файлах показаны различные возможные случаи описания объектов.

   <<Рисунок скип>>

  Hиже приводится текст MIF-файла для данной таблицы:

   Version 2
   Dellniter ","
   CoordSys Earth Projection 1, 0
   Columns 4
   object_Name Char (15)
   xcoord Decimal (10, 6)
   YCOORD Decimal (10, 6)
   AREA Decimal (10, 6)

   Data
   Rect -233.6424 22.648975 -171.655616 77.483407
    Pen (1,2,0)
    Brush (2,16777215,16777215)
   Rect -123.973504 -34.569553 38.145664 22.648975
    Pen (1,63,0)
    Brush (2,16777215,16777215)
   Rect -207.417216 44.105Э35 -207.417216 46.490063
    Pen (1,2,0)
    Brush (2,16777215,16777215)
   Roundrect -140.662272 65.562895 -26.225152 129.933775 57.218544
    Pen (1,2,0)
    Brush (33,8421504,16777215)
   Pline
   15
   -123.973504 139.470159
   -216.953632 194.304591
   -202.649024 137.086095
   -271.788064 129.933775
   -271.788064 60.794703
   -324.238408 32.185423
   -221.721856 -53.642385
   -176.423872 -8.344369
   -47.682176 -180.000001
   -23.841024 -165.695361
   2.384128 -184.768209
   21.456896 -168.079473
   66.754944 -191.920529
   83.443712 -158.543041
   33.377536 -89.403985
    Pen (1,41,0)
   Pline
   14
   52.450304 -84.635761
   109.668864 -163.311265
   123.973504 -113.245041
   166.887424 -127.549665
   154.966912 -84.635761
   200.26496 -77.483441
   176.423808 -44.105969
   226.490112 -13.112593
   185.96032 23.648975
   269.403904 98.940367
   245.56288 170.46356
   181.193064 118.013199
   319.47008 -17.880785
   281.324544 -53.643385
    Pen (1,75,12632356)
   Line 54.834433 172.847631 54.834432 41.721807
    Pen (1,2,0)
   Line 73.907328 96.556239 73.907328 8.344335
    Pen (1,2,0)
   Line 92.980096 94.173175 93.980096 -29.801339
    Pen (1,3,0)
   Line 54.834432 41.721807 143.0464 41.721807
    Pen (1,2,0)
   Line 73.907328 8.344335 162.119168 8.344335
    Pen (1,2,0)
   Region 1
   23
   -300.397344 168.079439
   -305.165568 82.251663
   -348.079472 37.417331
   -281.334512 -103.708625
   -236.026496 -110.860913
   -214.569536 -172.847681
   -159.735104 -163.311265
   -90.596033 -308.609373
   164.503396 -313.377485
   236.490113 -120.397345
   307.549696 -110.860913
   347.947008 -51.358289
   178.807936 -156.158945
   133.509888 -180.000001
   109.668864 -163.311265
   66.754944 -191.930529
   -59.602624 -194.304633
   -162.119232 -65.562929
   -352.715232 -82.251665
   -334.238408 32.185423
   -281.324512 94.172175
   -281.324512 191.920527
   -300.397344 168.079439
    Pen (1,2,0)
    Brush (50,0,16777215)
    Center -313.038531 -10.728479
   Region 1
   11
   245.56288 170.463567
   123.973504 132.317839
   54.834432 172.847631
   21.456896 144.238351
   -38.145664 196.688719
   26.225152 213.377423
   97.748352 196.688719
   123.973504 213.377423
   166.687424 177.615887
   231.25624 218.145679
   245.5628B 170.463567
    Pen (1,2,0)
    Brush (48,0,12632256)
    Center 103.708608 175.231759
   Point -87.668352 -62.487047
    Symbol (44,12632256,18)
   Point -14.92224 -99.792743
    Symbol (41,0,36)
   Point 52.227968 -58.756487
    Symbol (37,0,12)
   Text "Образец"+chr$(10)+"нескольких"+chr$(10)+"строк текста"
   -341.347152 -221.036271 -216.373056 -124.041447
    Font ("Helve", 0,0,0)

  Hиже приводится текст MID-файла для той же таблицы:

   First Rectangle, -202.649000, 50.066191, 10415810.900000
   Second Rect, -42.913920, -5.960289, 44044196.700000
   ,-307.417210, 45.297999, 0.000000
   Rounded Rect,-83.443712,90.000000,0.000000
   First Polyline,-112.053020,-90.000000,0.000000
   Second Polyline,206.225216,4.768191,0.000000
   1 line,54.834432,90.000000,0.000000
   2 line, 73.907328,53.450287,0.000000
   3 line,92.960096,32.185423,0.000000
   4 line,98.940416,41.721807,0.000000
   5 line,118.013248,8.344335,0.000000
   First Polygon,-313.038530,-10.728479,46605467.800000
   Second Polygon,103.708608,90.000000,0.000000
   1 Symbol,-87.668352,-62.487047,0.000000
   2 Symbol,-14.922240,-90.000000,0.000000
   3 Symbol,52.227968,-58.756487,0.000000
   First Text,-278.860100,-90.000000, 0.000000

2

MorAlex
А не подскажите..?

CoordSys Earth Projection 1, *,
1- type-положительное целое число, указывающее на координатную систему. А где можно посмотреть какая цифра какой координатной системе соответствует?   
Заранее спасибо!

3

Cпециально для тебя
http://m0ralex.narod.ru/444.PDF

4

"Brush (Штриховка)
  Brush  задает  шаблон, основной цвет и цвет фона:  Brush  (шаблон,
основной_цвет, цвет_фона)
  Шаблон  задается  числом  от  1 до 71.  Hиже  приводится  таблица,
содержащая типы шаблонов и их коды."

Подскажите, пожалуйста, где можно увидеть эту таблицу.

5

Тут: http://m0ralex.narod.ru/interchange_file.pdf

6

Большое спасибо.

7

Здраствуйте.
1)Можно пожалуйста ссылки на документ с таблицами. ( Ссылки которые находяться выше  приводят к пустой странице)
2)и еше вопрос:
MID файл:
1 строка

14954;61230000;линейный;"";"";1;"";"";"";"";"";"";1;5;"";"";"";"";"";"";"";
MIF файл:
1 объект
Pline 15
21.043236 50.000083
21.047859 49.996991
21.059078 49.994878
21.070450 49.993440
21.070489 49.992092
21.070621 49.987485
21.067511 49.974410
21.064186 49.968862
21.056078 49.966067
21.044445 49.952776
21.037173 49.945381
21.026084 49.943447
21.023473 49.943415
21.020691 49.943268
21.018780 49.943132
Pen (2,2,16776960)

я не вижу связи. В линии 15 точек, а в МИД фалйе для этого объекта на много больше полей.

3)Если не сложно, можно ссылку на документ с класификацие объектов, ( цифры коорые в МИД фале )

8

у MID фалйа заголовка нету.

9

Народ, подскажите, кто знает.
В Mapinfo есть возможность изменения системы координат. Например, сохранить копию и указать проекцию. Проекция выбирается из выпадающего списка, параметры этих проекций хранятся в файле mapinfo.prо
Теперь сам вопрос. Точней сначала суть. Хочу перейти от СК 42 к местной проекции Новосибирской области. Ключи перехода имеются. Один из параметров угол поворота осей. Куда его прописать? А еще лучше подскажите где посмотреть или расскажите структуру этого файла. Что за что отвечает
Пример
"GK зона 13 (Пулково 1942)\p28413", 8, 1001, 7, 75, 0, 1, 13500000, 0

"ххх"-название, как будет отображаться
8-тип проекции (поперечная Меркатора(Гаусса-Крюгера))
1001-система координат (Пулково 1942)
и тд..

как должна выглядеть строка для МСК 54 если имеется ширина координатной зона 3 градуса, х=а, у=б, уголповорота осей=с

10

сам в местных не работаю, советую посмотреть сайт.
http://www.mapbasic.ru/msk54


Вы здесь » Форум картографов, карты MapInfo, Google maps » MapInfo » Описание формата MIF/MID