4 (27), 2003 Конвертація проектів MapInfo у проекти ArcGIS

Усі номери

4 (27) 2003 Конвертація проектів MapInfo у проекти ArcGIS

Володимир Соколов, Микола Добрецов, Борис Берхін, Юрій Бернштейн ТОВ “Дата Іст”, Новосибірськ, тел. (383-2) 32-03-20, факс 32-57-85, e-mail: [email protected]

Під проектом MapInfo розуміється насамперед:

  • файл проекту (розширення WOR), у якому описані шари даних, у яких будується карта, перелік шарів, їх характеристики тощо.
  • самі дані – набір таблиць MapInfo (розширення TAB)

Під проектом ArcGIS (точніше ArcMAP) розуміється:

  • файл проекту ArcMAP (розширення MXD)
  • дані у шейп-файлах (розширення SHP)

Проблеми вирішення технологічного завдання

MapInfo та ArcGIS – розвинені ГІС системи, що дозволяють вирішувати широке коло завдань. Однак між ними існує ціла низка ідеологічних відмінностей.

Насамперед, вони реалізують різну об'єктну модель та модель даних. Перша має вбудовану мову програмування (MapBasic) – діалект звичайного Basic. Друга - вбудована мова Visual Basic і розвинена об'єктна модель, заснована на COM інтерфейсах. Слід зазначити, що об'єктна модель MapInfo сильно поступається у плані опрацьованості, до того ж у повному обсязі вона доступна лише з додатків на MapBasic. Але навіть у цьому випадку не всі параметри та властивості об'єктів можуть бути вилучені програмно (наприклад, параметри тематичних шарів). Тому на етапі отримання інформації ми використовуємо комбінований підхід: частина параметрів буде вилучатися додатком, написаним на MapBasic, частина - шляхом аналізу файлу проекту (WOR-файлу).

Інша відмінність – різні підходи до зберігання та відображення даних:

  • MapInfo дозволяє змішувати об'єкти різних типів(наприклад, тексту, полігонів та поліліній) в одній таблиці. ArcGIS припускає, що в одному шарі містяться дані лише одного типу (наприклад, лінії).
  • MapInfo може зберігати інформацію про символи (об'єкти, які визначають, як відображатиметься той чи інший графічний об'єкт) прямо в таблицях даних. ArcGIS зберігає таку інформацію лише у файлі проекту, вибираючи відповідний символ залежно від інформації з атрибутивної таблиці.
  • MapInfo жорстко кодує тип символу цілим числом (наприклад, для полігону – вид штрихування). Таких кодів кожного просторового типу об'єктів (полігону, лінії, точки) близько ста. ArcGIS має інші, більш гнучкі кодування символів, зокрема можна створити свій власний тип лінії.

Ці та інші відмінності накладають свій відбиток на процес перенесення інформації.

Нами розроблено програму, яка використовує наступну технологічну послідовність перетворення інформації:

  1. Вилучення необхідної інформації з файлу проекту MapInfo та його об'єктної моделі та збереження її у XML файлі.
  2. Експорт таблиць MapInfo у дані ArcGIS, тобто. таблиці TAB у SHP.
  3. Перетворення вилучених даних у проект ArcMAP та збереження цього проекту після всіх установок.
  4. Формування списку не перетвореної інформації.

Експорт метаінформації про проект MapInfo здійснюється за допомогою модуля, написаного на MapBasic і являє собою відкомпільований файл програми MapBasic (розширення MBX). Запуск цього модуля здійснюється автоматично з програми, що управляє. Потім MapInfo закривається і проводиться обробка файлу проекту (WOR) для отримання параметрів, специфічних для тематичних шарів MapInfo. Тому що нами використовувалася українськаверсія MapInfo, проводиться переклад кодування XML файлу (з 866 у UTF-8).

Фактично, результатом роботи програми на наведених вище кроках є створення проміжного файлу у форматі XML, який містить всю необхідну для перетворення інформацію про проект MapInfo. Фрагмент цього файлу показано на рис 1.

конвертація
Мал. 1.Фрагмент проміжного файлу у форматі XML.

  • кількість шарів
  • кількість тематичних шарів
  • масштаб карти
  • базові одиниці виміру
  • проекція
  • інформація для шарів: мінімальний і максимальний масштаб відображення шару, те ж саме для підписів, символи за промовчанням для шару, повний перелік символів для кожного об'єкта з таблиці MapInfo (TAB), тип шару (видимий, невидимий) тощо.
  • параметри тематичних верств: типи (ranges, density, graduated та інших.), полі таблиці, яким побудовано тематичний шар, символи, діапазони значень тощо.
  • інші параметри.

З другого краю ехтапе проводиться експорт таблиць MapInfo у дані ArcGIS, тобто. переклад таблиць TAB до SHP. При цьому зберігається необхідна інформація про проекції.

Далі запускається програма ArcMap, в якій за допомогою спеціально розробленого розширення формуються необхідні об'єкти, підключаються шари даних, встановлюються відповідні параметри зображення для шарів тощо.

Результатом роботи є файл проекту ArcMap, набір шейп-файлів та лог-файл, що містить інформацію про роботу програми, у тому числі список не перетворених характеристик вихідного проекту.

На рис 2 показана карта, побудована на даних США, - так, як вона виглядає у вікні MapInfo. Фрагменти легенди з вікна MapInfo показують, як мають відображатися шари картки (рис. 3).

проектів
Мал. 2.Карта у вікні MapInfo.

2003
Мал. 3.Фрагменти легенди з вікна MapInfo.

Результат автоматичного перетворення карти в ArcMap показано на рис. 4.

конвертація
Мал. 4.Перетворена карта в ArcMap.

Через відмінності у підходах у кожній конкретній системі до зберігання даних, їх відображення тощо. повністю автоматизувати процес конвертації, мабуть, неможливо. Крім того, існують проблеми, пов'язані з перекладом програм та модулів MapBasic на Visual Basic та COM-технологію.

Загалом, на нашу думку, можливості ArcGIS вищі за аналогічні можливості MapInfo. І в тому випадку, коли автоматизованим способом не вдається отримати абсолютно повну ідентичність проектів, ArcGIS, як правило, дозволяє досягти цього іншим способом. Тому для складних проектів виключити участь оператора не вдається.

Такі розбіжності між двома розглянутими ГІС передбачається вирішувати за допомогою формування спеціального списку інформації, що не переноситься, який надалі може служити основою для більш точної адаптації інформації до моделі даних ArcGIS. Функція оператора в цьому випадку повинна зводитися до остаточного налаштування проекту, більшість якого вже виконана програмою перетворення. Істотною перевагою запропонованої нами технології є створення XML-файлу, який можна буде використовувати при подальшому налаштуванні проекту.