Опис обмінного формату mapinfo mif (mapinfo interchange format) - glab - 2018

Навряд чи це робиться зі злого наміру. Ранні версії документації були оформлені (з об'єктивних причин) вкрай ненаглядно і мало кому вдавалося дочитати до «Програми J» на 500-якійсь сторінці. Не кажучи вже про те, щоб візуально запам'ятати цей текст. А, починаючи з версії 8.0 цього розділу взагалі зник з «Керівництва» і повернувся тільки в версії 12.0, правда, істотно перероблений і не настільки наочний.

Спробуємо виправити становище, скомпілювавши потрібні глави «Керівництва Користувача» від різних версій.

У цій статті описаний формат обміну даними MapInfo MID / MIF.

Дані MapInfo зберігаються в двох файлах: графічна інформація міститься в файлах з розширенням MIF, а текстова - в файлах з розширенням MID. Кожен рядок текстових даних відділяється від наступного рядка або символом повернення каретки (Carriage Return), або символом повернення каретки разом з новим рядком (Line Feed), або тільки символом нового рядка. MIF-файл складається з двох частин: заголовка і секції даних. Тема файлу містить інформацію про те, як створювати таблиці MapInfo, а секція даних містить визначення графічних об'єктів.

Тема файлу формату MIF

Тема файлу формату MIF має такий вигляд (у квадратних дужках взята інформація, яка може бути відсутнім).

VERSION n
CharSet "char_set"
[DELIMITER "<с>"]
[UNIQUE n, n. ]
[INDEX n, n. ]
[COORDSYS. ]
[TRANSFORM. ]
COLUMNS n
<имя> <тип>
<имя> <тип>

Пропозиція Version (Версія)

Для правильної обробки MIF-файлу MapInfo необхідно знати, в якій версії програми він був створений. Номер версії задається пропозицією VERSION:

VERSION 1 або VERSION 2 або VERSION 300 або VERSION 450 і так далі.

  • MIF-файл завжди зберігається з номером версії 300, якщо інше не задано у вихідній таблиці.
  • Після того, як таблиця одного разу була оновлена ​​на новішу версію, MapInfo Professional ніколи не знижує номер її версії на менше значення, навіть коли характеристика, яка викликала оновлення, видалена.
  • Параметри Pen (0,0,0) і Brush (0,0,0), які можна було використовувати в таблицях MapInfo Professional 4.1, заборонені в MapInfo Professional 4.5 і пізніших версіях.
  • Товщина лінії, задана пропозицією Pen, відповідає зазначеному значенню, помноженому на 10, плюс 10 (.2 → 12, 1.0 → 20, і т. П.). При цьому в заголовку MIF-файлу номер версії змінюється на 450.

Всі зміни (та їх наслідки) в TAB- і MIF-файлах, робочих наборах та інших службових файлах MapInfo Professional перераховані у відповідній таблиці Додатка D «Керівництва Користувача» MapInfo версії 12.5.

Пропозиція CharSet (Набір символів)

У реченні CharSet вказується, набір символів який кодової сторінки використовується в таблиці. Наприклад, «WindowsLatin1» означає, що використовується стандартна для США і Західної Європи кодова сторінка Windows (так звана «ANSI кодування» або «кодова сторінка тисячі двісті п'ятьдесят-одна»); «WindowsCyrillic» позначає стандартний дляУкаіни набір символів Windows (кодова сторінка 1252); «MacRoman» позначає стандартний набір символів Macintosh US Western Europe. Якщо вказати слово «Neutral», то MapInfo не виконуватиме перетворення символів в поточну кодову сторінку Windows.

Пропозиція Delimiter (Роздільник)

Тут в подвійних лапках вказується символ, що використовується як роздільник, наприклад:

Стандартне значення роздільник - символ табуляції; при використанні стандартного роздільник рядок DELIMITER може бути опущена.

Пропозиція Unique (Унікальна колонка)

Тут задається число. Це число вказує на стовпець в базі даних: 3 вказує на третій стовпець, 7 - на сьомий і так далі. Що відбувається за допомогою стовпців, перерахованими в списку UNIQUE? Уявімо, наприклад, що є база даних про шосейних дорогах. Кожному шосе відповідає єдине назва, але шосе може розпадатися на декілька ділянок (яким зіставлені окремі записи). Помістіть стовпець NAME в список UNIQUE, а стовпець сегментів не вказуйте в цьому списку. В результаті будуть створені дві з'єднані таблиці: таблиця імен та таблиця інших атрибутів об'єктів. Саме таким чином розроблялися різні таблиці вулиць для Pitney Bowes Software Inc. (Таблиці StreetPro).

Пропозиція Index (Індекс)

Числа, зазначені в цій пропозиції, являють собою номера тих колонок таблиці, для яких визначені індекси. При цьому колонки нумеруються, починаючи з одиниці так, що число 3 означає, що індекс визначений для третьої колонки, число 7 - для сьомий і т.д. Колонки в списку INDEX будуть пронумеровані відповідно до цими числами.

Пропозиція CoordSys (Координатна система)

Пропозиція COORDSYS задається для того, щоб вказати, що дані зберігаються НЕ в проекції широти / Довготи. Якщо пропозиція COORDSYS відсутня, то передбачається, що дані наведені в проекції Широта / Довгота.

Всі координати наводяться щодо північно-східного квадранта. Координати об'єктів на території США мають негативну координату X, а координати об'єктів вУкаіни і Європі (на схід від Грінвіча) мають позитивні координати по осі X. Об'єктам в північній півкулі відповідають позитивні координати Y, а об'єктам в південній півкулі - негативні координати Y.

Синтаксис запису пропозиції CoordSys:

CoordSys Earth
[Projection type, datum, unitname
[. origin_longitude]
[. origin_latitude]
[. standard_parallel_1 [. standard_parallel_2]]
[. azimuth]
[. scale_factor]
[. false_easting]
[. false_northing]
[. range]]
[Affine Units unitname, A, B C, D, E, F]
[Bounds (minx, miny) (maxx, maxy)]

CoordSys Nonearth
[Affine Units unitname, A, B C, D, E, F]
Units unitname
Bounds (minx, miny) (maxx, maxy)

CoordSys Layout Units paperunitname

CoordSys Table tablename

CoordSys Window window_id

  • type - позитивне ціле число. що показує, яка координатна система використовується;
  • datum - позитивне ціле число. вказує який регіон використовується;
  • unitname - строкова величина, що показує, які одиниці вимірювання використовуються (наприклад, "m" для метрів);
  • origin_longitude - дійсне число, в градусах, що показує довготу;
  • origin_latitude - дійсне число, в градусах, що показує широту;
  • standard_parallel_1 і standard_parallel_2 - речові значення широти, в градусах;
  • azimuth - речова величина, кут вимірювання в градусах;
  • scale_factor - речова величина, масштабний множник;
  • range - речова величина, від 1 до 180, відповідно до якої, яка частина земної поверхні буде показана;
  • minx - речова величина, яка визначає мінімальне значення x;
  • miny - речова величина, яка визначає мінімальне значення y;
  • maxx - речова величина, яка визначає максимальне значення x;
  • maxy - речова величина, яка визначає максимальне значення y;
  • paperunitname - строкова величина, що представляє "паперові" одиниці виміру (наприклад. "in" для дюймів);
  • tablename - ім'я відкритої таблиці;
  • window_id - ціла величина, ідентифікатор вікна, соотнесенного з вікном Карти або Звіту;
  • A представляє масштабування або розтягнення уздовж осі X.
  • B являє поворот або відхилення уздовж осі X.
  • C являє зрушення уздовж осі X.
  • D являє масштабування або розтягнення уздовж осі Y.
  • E являє поворот або відхилення уздовж осі Y.
  • F являє зрушення уздовж осі Y.

Пропозиція Transform (Перетворення)

Якщо у файлі MIF записані координати щодо північно-західного квадранта (квадрант 2), то Ви можете задати перетворення цих координат до північно-східного квадранту (квадрант 1) в реченні Transform.

Квадрант 2:
Північно-західний квадрант

Квадрант 1:
Північно-східний квадрант

Щоб скомбінувати два і більше ефекту, числа потрібно скласти. Щоб, наприклад, поставити жирний шрифт з тінню, слід задати число 33.

Аргумент rotation - це число з плаваючою точкою, кут повороту в градусах.

Пропозиція Symbol. Синтаксис для растрових символів

Для того, щоб оформити растрові символи, слід використовувати наступну форму пропозиції Symbol:

SYMBOL (filename, color, size, customstyle)

Аргумент filename визначає назву реєстрового файлу (наприклад, «Arrow.BMP») в каталозі CUSTSYMB.

Аргумент customstyle - це ціле число, що управляє кольором символу і його фону:

Прапорці «Фон» і «Пофарбувати одним кольором» не встановлені. Символ показується стандартно. Всі білі точки зображення стають прозорими і під ними видно об'єкти Карти.

Встановлено прапорець «Фон». Всі білі точки зображення стають непрозорими.

Встановлено прапорець «Пофарбувати одним кольором». Все не білі точки зображення фарбуються в колір символу.

Встановлено прапорці «Фон» і «Пофарбувати одним кольором».

Пропозиція Font (шрифт)

Пропозиція Font визначає режими подання текстових об'єктів (шрифт, колір і т.д.). синтаксис:

FONT (fontname, style, size. Forecolor [. Backcolor])

  • fontname - ім'я шрифту, строкова величина (наприклад. "Arial");
  • style - чисельне вираження, в результаті якого виходить позитивне ціле число;
  • size - розмір шрифту, ціле число;
  • forecolor - колір символів шрифту в системі RGB;
  • backcolor - колір фону або облямівки в системі RGB.

Назва шрифту полягає в подвійні лапки. Великі та малі літери для цього параметра розрізняються. Стиль - це один з атрибутів шрифту, наведених у таблиці нижче. Розмір в файлі MIF має дорівнювати 0 для підписів у вікні Карти, так як вони є атрибутами Карти і їх розмір визначається динамічно. Основний колір задається 24- бітових RGB-значенням. Колір фону задавати необов'язково. Щоб зробити фон прозорим, задайте значення, рівне -1.

Пропозиція Color (колір)

Color задає колір об'єкта:

Кольори найчастіше задаються в частках червоного, зеленого і синього кольорів RGB. Кожному відтінку відповідають номери від 0 до 255; RGB-значення для кольору обчислюється за формулою:

(Червоний * 65536) + (Зелений * 256) + синій

Ось кілька найбільш часто використовуваних значень:

  • Червоний: 16711680
  • Зелений: 65280
  • Синій: 255
  • Блакитний: 65535
  • Фіолетовий: 16711935
  • Жовтий: 16776960
  • Чорний: 0

Файл формату MID

Файл формату MID містить записи, між якими стоять роздільники, задані в реченні Delimiter. Стандартний роздільник - символ табуляції. Кожен рядок в MID-файлі відповідає об'єкту в MIF-файл: перший рядок відповідає першому об'єкту, другий рядок - другому об'єкту і так далі.

Якщо символ-роздільник є частиною запису, укладіть такий запис в подвійні лапки.

Файл формату MID може бути відсутнім. У цьому випадку створюються порожні поля.

Список літератури