Системные требования программы
Представленная в данной статье программа предназначена для экспорта карт ГИС ObjectLand в обменные форматы MIF (MapInfo) и SHP (ArcGIS). Для работы программы требуется наличие на компьютере исполняемой среды NET Framework 2.0, в настоящее время её дистрибутив предоставляется бесплатно по адресу http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5, для установки Net Framework необходимы права администратора в системе. В операционных системах Windows Vista и Windows 7 ничего устанавливать не надо, Net Framework уже входит в их состав. ObjectLand должен быть установлен вместе со своим COM-сервером, то есть «типичная» установка не годится, нужна «полная». Программа работает только из локального каталога (не сетевого), при запуске программы все файлы DLL из предлагаемого ниже архива должны находиться в том же локальном (не сетевом) каталоге, что и EXE-файл. Программа работает с версией ObjectLand не ниже 2.7.5 и требует установки патча (можно скачать в конце статьи). Чтобы установить патч, просто скопируйте файлы из скачанного архива патча в каталог C:\Program Files\Objectland\BIN, перезаписав при этом старые файлы. Конечно, при копировании патча ГИС Objectland не должна быть запущена на данном компьютере. Для версии ObjectLand 2.7.6 и новее никакого патча не требуется.
Особенности и ограничения программы
Программа не экспортирует растры, хранящиеся в ГБД, и пустые типы геометрии. Программа работает только с внутренними таблицами ГБД, игнорируя данные, хранящиеся во внешних таблицах. Программа открывает ГБД в монопольном доступе на всё время работы с ней. Желательно работать с копией ГБД, потому что в ходе работы программы будут созданы временные вспомогательные типы геометрии и таблицы, которые удаляются при нормальном завершении работы. По завершении работы в выбранном пользователем каталоге будут сохранены подкаталоги, названные так же, как слои карты, а внутри подкаталогов будут храниться файлы выбранного обменного формата, названные по именам типов геометрии, входящих в соответствующий слой карты. Таким образом, в результате экспорта структура данных на диске будет соответствовать структуре карты ГБД: слои будут соответствовать подкаталогам, а типы геометрии – файлам выбранного обменного формата.
Экспорт в случае нескольких таблиц
Обменные форматы SHP и MIF предполагают хранение табличных (атрибутивных) данных, связанных с геометриями, в одной-единственной таблице, в то время как в ГИС ObjectLand с одним типом геометрии может быть связано несколько таблиц, причём как с уникальной, так и со множественной характеристикой связи. Таблицы, связанные со множественной характеристикой связи, экспортировать в обменные форматы автору не представляется возможным. В то же время таблицы, связанные с типом геометрии соотношением «один к одному» (уникальная характеристика связи), возможно объединить во временную таблицу (ключом при объединении выступит сам геометрический объект), а затем её единственную экспортировать – что и делает представленная здесь программа. Конечно, объединение таблиц занимает у программы длительное время, это следует иметь в виду при планировании времени, отводимого на экспорт.
Обход ограничений формата SHP
Как известно, обменный формат SHP не поддерживает текстовый тип геометрии, и поэтому ГИС ObjectLand не позволяет экспортировать текстовые типы в данный формат, что делает затруднительным обмен данными с пользователями ArcGIS. Когда представленная здесь программа встречает в составе слоя карты текстовый тип геометрии, она создаёт вспомогательный точечный тип, связанный с копией той же таблицы, что и текстовый, причём в таблице-копии добавлены поля «TEXTstring» (непосредственно текст), «TEXTangle» (угол поворота текста) и «TEXTsize» (высота текста). Кроме того, каждая точка пространственно совпадает с началом соответствующего ей текста. Таким образом, имеем на выходе «точечный» SHP-файл, каждая точка которого связана с записью, несущей три поля информации о тексте плюс произвольные исходные поля текстового типа, то есть при экспорте не теряется ни текст, ни его геометрия, ни его табличные данные.

 
Средствами ArcGIS можно легко восстановить надписи, углы поворота и высоту текста. Для этого в карту ArcMap импортируется из SHP-файла точечный слой, для которого через контекстное меню (вызываемое правой кнопкой мыши) надо включить режим простановки меток (Label Features, цифра 1 на рисунке выше), а затем в диалоге Properties того же контекстного меню (цифра 2 на рисунке выше) на закладке «Labels» задать, что тексты меток следует брать из поля «TEXTstring», а углы поворота текста – из поля «TEXTangle». С высотой текста сложнее: придётся выбрать в самом верхнем списке закладки «Labels» диалога «Layer Properties» метод «Define classes of features and label each class differently» и создать несколько классов точек, для каждого из которого построить несложный SQL-запрос к полю «TEXTsize» таблицы, то есть разделить весь диапазон значений поля «TEXTsize» между этими классами.
Переименование полей таблиц
В ГИС ObjectLand поля встроенных таблиц могут иметь длинные имена, содержащие любые символы. Чтобы не возникало ошибки при экспорте таких таблиц, пользователю предлагается сопоставить «некорректным» именам полей такие имена, которые соответствуют требованиям обменных форматов. Вот эти требования для формата DBF (SHP): имя не длиннее 10 символов, начинается с буквы, может включать только латиницу, цифры и знак «_». Для формата MID (MIF) каких-либо требований автору найти не удалось, но, скорее всего, имя не должно быть длиннее 20 символов, может содержать латиницу, кириллицу, цифры, символ «_», и не должно совпадать с ключевыми словами формата MID (их можно посмотреть в спецификации формата).
Элементы управления
При экспорте текстовых типов геометрии в формат SHP время работы программы существенно увеличивается (ориентировочно 20 минут на каждую тысячу текстовых объектов), поэтому предусмотрен флажок «экспортировать текстовые типы», который можно отключить, чтобы ускорить экспорт ценой отказа от обработки текстовых типов геометрии. При экспорте в формат MIF текст импортируется быстро, так как не требуется программных хитростей, и флажок становится не активен.
Если включить флажок «Сохранить переименования в файл», то все сопоставленные пользователем имена полей и оригинальные имена полей будут сохранены в текстовый файл в процессе импорта. Кнопка «Прочесть из файла» позволяет загрузить такой текстовый файл, если он был создан ранее. И флажок, и кнопку следует использовать до нажатия кнопки «Экспортировать карту».
Обратная связь
Обсудить программу возможно на форуме ГИС ObjectLand на странице http://www.objectland.ru/support/forum/2765.
8 июня 2010 г.
Трухачёв М.Ю.