Здесь расположен наш офис
Внимание!
Наш сайт переехал по адресу:
http://urgc.info
Просьба перейти по данной ссылке. Информация, представленная на нижележащей странице, устарела и более не актуальна.
Г Р У П П А   К О М П А Н И Й
ГРАДОСТРОИТЕЛЬНЫЙ  ЦЕНТР
344000, Ростовская обл., г.Ростов-на-Дону, пер.Газетный, 121/262А, офис 4
Тел./факс (863) 242-9970, 242-9968
Идёт загрузка страницы ...
  

 

Информационное агентство СА «Архитектор»

Рейтинг@Mail.ru
Rambler's Top100

© ООО «НПО «ЮРГЦ»,
2008-2012
При перепечатке материалов ссылка на сайт обязательна

Страница оптимизирована
для Internet Explorer

Исправление ошибок геометрии
в площадных MIF-файлах

В площадных геометриях, хранящихся в формате MIF, могут встречаться ошибки типа самопересечения границ, взаимного пересечения границ и другие. В таких случаях при импорте в ObjectLand в файле отчёта сохраняется информация о координатах вершин границы, где произошла ошибка, а также номер сбойной строки записи MIF-файла, имеющего формат простого текста. При помощи описываемой в данной статье программы MifConvert возможно выделить из MIF-файла отдельные геометрии по номерам строк, при необходимости преобразовать их из площадного типа в линейный и сохранить в той же папке каждую запись в виде небольшого MIF-файла. После такого преобразования импорт в ObjectLand становится возможным, ведь для линейных геометрий допускаются многие ситуации, приводящие к ошибке у площадных геометрий. При выделении отдельных геометрий из MIF-файла и преобразовании MIF-файла из площадного в линейный тип соответствующая геометриям атрибутивная (табличная) информация не теряется и при импорте может быть размещена в таблице ObjectLand, связанной с соответствующим типом геометрии. В программе MifConvert возможно задание сразу нескольких геометрий для копирования из исходного файла, в этом случае номера строк следует отделять запятыми (допустимы пробелы), например так: «23,67, 119, 203» – будет создано четыре небольших MIF-файла с соответствующими именами, расположенных в той же папке, что исходный MIF-файл. А если установить флажок «слить все конвертированные записи в один файл», то вместо четырёх файлов по одной геометрии каждый будет создан один файл с четырьмя геометриями. Некоторые площадные геометрии могут иметь более одной границы, тогда каждой границе будет соответствовать одна «линейная» запись в выходном файле, то есть число линейных объектов может превысить число площадных. Как уже упоминалось выше, табличная информация, связанная с геометриями, не теряется и это значит, что при каждом MIF-файле создаётся файл формата MID (табличный) с тем же именем.

Рассмотрим теперь подробно процесс исправления ошибок геометрии площадного MIF-файла.

1) Скопировать с помощью программы MifConvert сбойные геометрии в отдельные MIF-файлы (номера записей можно посмотреть в файле отчёта об импорте ObjectLand).

2) Для первой из сбойных геометрий: создать в слое, содержащем площадной тип, куда требуется доимпортировать сбойные геометрии, ещё один линейный тип геометрии и связать его с теми же таблицами и теми же характеристиками связи (уникальная либо множественная), что и площадной тип. Далее в этот линейный тип геометрии следует импортировать по очереди полученные на шаге 1) MIF-файлы (то есть шаги 2-5 надо последовательно пройти для каждого файла, полученного на шаге 1). Следует проследить за числом появившихся после импорта линейных геометрий (их может оказаться больше, чем площадных), потому что иногда встречаются сбойные площадные геометрии с одной или несколькими «дырами» либо в виде архипелага отдельных островков. Каждая такая «дыра» либо островок при конвертации программой MifConvert превращается в отдельную линейную геометрию.

3) Найти на плоскости место ошибки (координаты можно посмотреть в файле отчёта об импорте ObjectLand) и исправить её, редактируя вершины мышью.

4) Запомнить номер записи в таблице, связанной со сбойной геометрией и преобразовать геометрию из полилинии в полигон, сменив тип геометрии с линейного на соответствующий площадной в том же слое. Если редактирование на шаге 3 было корректным, преобразование пройдёт успешно. При этом потеряется связь геометрии с записью в таблице. Надо будет восстановить эту связь по запомненному номеру записи в таблице.

5) В случае площадной геометрии с «дырами» (см. шаг 2) следует преобразовать все границы в площадные объекты и в правильном порядке собрать составную площадную геометрию.

6) После прохождения шагов 2-5 для всех сбойных геометрий можно удалить из ГБД ненужный теперь линейный тип геометрии, созданный на шаге 2.

Для чего нужна кнопка «Лечить», расположенная справа внизу? Она создаёт пару файлов MIF и MID в той же папке, что и исходные, со словом «cured» в конце имени, и избавленные от дефектов. Пока «лечится» только один дефект, а именно: в некоторых многоконтурных линейных геометриях начало записи имеет вид «PLINE MULTIPLE N1 N2», где N1 – число контуров, а N2 – число вершин первого из контуров. Такой вид записи ошибочен; согласно спецификации формата MIF, число N2 должно идти отдельно на следующей строке. При импорте в ObjectLand файла с таким дефектом появится окно с сообщением «Нераспознанная ошибка». После «лечения» файл нормально импортируется (если, конечно, нет других дефектов).

Программа MifConvert требует наличия на компьютере исполняемой среды NET Framework 2.0, в настоящее время её дистрибутив предоставляется бесплатно по адресу http://www.microsoft.com/ru-ru/download/details.aspx?id=1639 . Программа запускается только из локального (не сетевого) каталога.

30 октября 2009 г.

Трухачёв М.Ю.

Программа для выделения отдельных
записей из MIF-файлов

Скачать на диск