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

 

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

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

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

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

Массовый импорт данных
из форматов SHP и MIF в ГИС ObjectLand

Назначение программы

Организации, выпускающие цифровые карты, передают покупателю данные в одном из обменных форматов MIF или SHP, разложенными в папки попланшетно. То есть на входе имеем папки с именами вроде K3808, K3809, K3814, K3815 (имена планшетов), внутри которых хранятся обменные файлы вместе со вспомогательными данными (индексными и атрибутивными) по всем категориям - реки, дороги, рельеф и т.д. При этом в идеале имена файлов, относящихся к одинаковым категориям, в разных папках должны совпадать между собой. Но на практике разные планшеты готовят разные люди, возможно, и в разное время, и именуют файлы по-разному. Кроме того, возможны опечатки в именах вспомогательных файлов, например, файл геометрий называется «дороги.mif», а соответствующий ему «табличный» файл назван «дооги.mid», и тогда при импорте в ObjectLand геометрии дорог импортированы будут, а атрибутивные данные по дорогам – нет. Программа Batch_Importer решает две независимые задачи: исправляет имена файлов данных, запрашивая пользователя о правильных вариантах, и импортирует данные во вновь создаваемую ГБД. Если надо только упорядочить имена файлов, можно обойтись без импорта. И наоборот, если имена файлов уже единообразны во всех папках, то можно обойтись без упорядочения, приступив сразу к импорту в ГБД.

При импорте во вновь созданной ГБД будут заведены слои, именованные в соответствии с категориями исходных данных (например, реки, дороги, рельеф и т.д.), а в каждом слое будут типы геометрий попланшетно: K3808, K3809, K3814, K3815... Типы геометрий (и хранящиеся в них геометрии) будут связаны с соответствующими таблицами, которые будут созданы программой автоматически и в процессе импорта заполнены атрибутивными данными. Итак, названия папок с исходными файлами дадут названия типам геометрий, а названия самих файлов данных (предполагается, что они были упорядочены) дадут имена слоям ГБД. Если перед импортом не упорядочивать имена файлов данных, ничего страшного не произойдёт, просто будет создано множество слоёв, содержащих один-два планшета, и работать с такой хаотично построенной ГБД будет бессмысленно.

В папке, где находится вновь созданная ГБД, будет также создан текстовый файл «Отчёт об импорте», его следует обязательно просмотреть после завершения импорта, так как некоторые файлы данных могут быть не импортированы из-за повреждений. Такие файлы следует «вылечить» вручную, если это возможно, либо запросить у поставщика повторно. Также в файле отчёта содержится информация об отвергнутых при импорте некорректных объектах (имеющих самопересечения, например). В случае наличия некорректных объектов также следует обратиться с претензией к поставщику данных, хотя есть способы «вылечить» такие файлы своими силами (см. статьи «Исправление ошибок геометрии в площадных SHP-файлах» и «Исправление ошибок геометрии в площадных MIF-файлах»).

Порядок работы

В диалоговом окне следует установить формат файлов, подлежащих импорту (SHP или MIF), затем кнопкой «Выбрать верхнюю папку данных» указать папку, содержащие подпапки с данными. Здесь необходимо пояснение. Программа ожидает, что в выбранной «верхней» папке (её название не имеет значения) содержатся подпапки, названные по именам планшетов (вроде K3808, K3809, K3814, K3815), а в этих подпапках уже находятся данные для импорта, т.е. непосредственно файлы SHP или MIF, названные по именам категорий карты – реки, дороги, рельеф и т.д. В том случае, если данные не были разбиты по планшетам (то есть в файле, например, «дороги.mif» находятся дороги сразу на всю территорию) и содержатся все в одной-единственной папке, то надо дать этой папке нейтральное по смыслу имя, например, «Данные» либо «Графика» и поместить её внутрь пустой папки (с любым именем), которая и сыграет роль «верхней» папки (то есть её надо будет выбрать в качестве «верхней папки данных»). После того, как указана верхняя папка для подпапок, содержащих данные, можно либо упорядочить имена файлов, либо (если имена уже упорядочены или все файлы содержатся в единственной подпапке) начать импорт. Если перед импортом не упорядочивать имена файлов данных, ничего страшного не произойдёт, просто будет создано множество слоёв, содержащих один-два планшета, и работать с такой хаотично построенной ГБД будет бессмысленно.

Упорядочение имён файлов данных

В ходе упорядочения имён файлов программа будет запрашивать пользователя, как он хочет назвать ту или иную категорию карты. Например, если программа запросит имя категории для файла «d:\Верхняя папка\K3808\дороги.mif», то пользователь в первый раз может впечатать имя «Автодороги и тропы» – именно так будет называться соответствующий слой во вновь созданной ГБД. Что означает «в первый раз» ? Программа спросит пользователя про каждый файл первой подпапки (т.е. первого планшета), а если в последующих подпапках (планшетах) встретит такое же имя файла, то запрашивать пользователя уже не станет и переименует файл автоматически. А вот если файл с дорогами называется «дороги.mif» в первой подпапке, а во второй – «автодороги.mif», то программа спросит, к какой категории отнести файл с новым для неё именем «автодороги.mif». И чтобы пользователь не впечатывал каждый раз имя «Автодороги и тропы», он может выбрать эту категорию из списка, предложенного программой (для первой подпапки, соответственно, список будет пустой). Так же поступит программа, если в одном из планшетов встретит новую категорию, например, «нефтепроводы.mif» (нефтепроводы есть не на каждом планшете) – она запросит новое имя файла у пользователя. После того, как пользователь впечатал новое имя или выбрал соответствующее имя из списка, он должен нажать кнопку «Назначить». Чтобы прервать режим переименования, надо нажать кнопку «Прекратить», в этом случае файлы текущего планшета (и всех последующих) останутся непереименованными. Рекомендуется сохранить где-нибудь исходные файлы данных, а переименовывать копию, чтобы не наделать непоправимых ошибок.

На основной форме программы, сразу над кнопкой «Упорядочить имена файлов», имеется два текстовых поля, объединённых рамкой «Игнорировать в именах файлов». Для чего они нужны ? Дело в том, что довольно часто имена файлов в папках выглядят «K3808_автодороги.mif» или «автодороги_K3808.mif» вместо просто «автодороги.mif», то есть в начале или в конце имени файла обязательно присутствует имя планшета. Таким образом, в каждой подпапке имена файлов одной и той же категории различаются: «K3808_автодороги.mif», «K3809_автодороги.mif», «K3814_автодороги.mif» и т.д. Если пользователь оставит поля «Игнорировать в именах файлов» незаполненными и сразу нажмёт кнопку «Упорядочить имена файлов», то программа станет запрашивать имена категорий для файлов каждой подпапки, как для первой, ведь имена одной и той же категории будут отличаться в зависимости от подпапки и будут каждый раз новыми для программы. Пользователю придётся ответить столько раз, сколько имеется файлов – десятки или сотни раз. Чтобы такого не происходило, следует перед нажатием «Упорядочить имена файлов» в текстовых полях «Игнорировать в именах файлов» впечатать шаблоны отбрасываемых строк, тогда программа будет игнорировать цепочки символов, соответствующие этим шаблонам, «в начале» и «в конце» имён файлов соответственно. Шаблоны формируются по следующим правилам. Символ «*» (звёздочка) означает любое количество любых символов (его лучше не использовать), символ «?» (знак вопроса) означает один-единственный произвольный символ, символ «#» (решётка) означает одну-единственную цифру от нуля до девятки включительно. Более сложные конструкции описаны в этой статье. В двух словах, пользователю не следует впечатывать в шаблон квадратные скобки (символы «[» и «]») и звёздочку «*», не прочтя внимательно эту статью. Итак, в вышеописанном случае надо впечатать в соответствующем поле шаблон: «K####_» (в начале имени) либо «_K####» (в конце). Регистр букв в шаблоне (строчная или заглавная) не имеет значения, а вот набор символов (кириллица либо латиница) важно соблюдать, ведь многие буквы («А», «К», «О» и т.д.) одинаково выглядят в обоих наборах, и есть возможность ошибиться.

В процессе упорядочения имён файлов также отыскиваются и переименовываются те вспомогательные файлы (формата MID, SHX, DBF), имена которых не совпадают с именем соответствующего основного файла (формата MIF, SHP). Программа, не найдя вспомогательных файлов у какого-либо из основных файлов, просит пользователя выбрать вспомогательный файл с «плохим» именем самостоятельно и переименовывает его по имени основного файла. Очевидно, файлы вспомогательных форматов (MID, SHX, DBF) следует всегда располагать в тех же подпапках, что и «основные» файлы (MIF, SHP). А что будет в случае, если поставщик данных вообще не передал вспомогательные файлы одного из форматов (например, без SHX-файлов вполне можно обойтись при импорте) ? В этом случае пользователь должен нажать кнопку «Отмена», чтобы дать понять программе, что в текущей подпапке вспомогательных файлов данного формата нет вообще. Следует заметить, что программа не станет импортировать файлы атрибутивных (табличных) данных (формата MID, DBF), если отсутствуют соответствующие им файлы геометрий (формата MIF, SHP).

Импорт данных

Файлы с упорядоченными именами можно импортировать, для этого надо нажать кнопку «Начать импорт». Если перед импортом не упорядочивать имена файлов данных, ничего страшного не произойдёт, просто будет создано множество слоёв, содержащих один-два планшета, и работать с такой хаотично построенной ГБД будет бессмысленно. После нажатия кнопки пользователь должен задать папку, в которой будет создана новая ГБД с импортированными данными. Процесс импорта длится долго, от нескольких минут до десятков часов, в зависимости от количества и объёма файлов данных. За ходом импорта можно следить, заглядывая в текстовый файл «Отчёт об импорте» (создаётся в той же папке, где и ГБД). Этот файл можно открывать, просматривать и закрывать, но не следует сохранять, так как он всё время растёт в процессе импорта. Когда импорт завершится, на экран будет выведено соответствующее сообщение пользователю. Файл «Отчёт об импорте» следует обязательно просмотреть после завершения импорта, так как некоторые файлы данных могут быть не импортированы из-за повреждений. Такие файлы следует «вылечить» вручную, если это возможно, либо запросить у поставщика повторно. Также в файле отчёта содержится информация об отвергнутых при импорте некорректных объектах (имеющих самопересечения, например). В случае наличия некорректных объектов также следует обратиться с претензией к поставщику данных, хотя есть способы «вылечить» такие файлы своими силами (см. статьи «Исправление ошибок геометрии в площадных SHP-файлах» и «Исправление ошибок геометрии в площадных MIF-файлах»). Файлы данных нулевой длины (т.е. пустые файлы) в процессе импорта уничтожаются, это ещё одна причина, по которой рекомендуется работать с копией исходных данных, переданных поставщиком.

На основной форме программы, сразу над кнопкой «Начать импорт», имеется несколько текстовых полей, объединённых рамкой «Окончания названий по типу данных». Строки, впечатанные в эти поля, окажутся добавленными к именам слоёв ГБД. Сделано так потому, что в файлах формата MIF может содержаться сразу несколько типов пространственных данных – линейные, точечные, текстовые и т.д. Поэтому информация из единственного файла «дороги.mif» будет распределена по слоям с разными именами: «Автодороги и тропы-Линии», «Автодороги и тропы-Площадные» и т.д.

Замечания по программе

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

Также требуется установить патч к ObjectLand (соответствующий установленной версии программы), распространяемый бесплатно с разрешения разработчиков программы, без него некоторые файлы данных не импортируются. Просто скопируйте файлы из архива патча в папку C:\Program Files\ObjectLand\BIN, перезаписав одноимённые старые файлы (конечно, ObjectLand при этом не должен быть запущен).

ObjectLand должен быть установлен вместе со своим COM-сервером, то есть «типичная» установка не годится, нужна «полная».

При запуске программы файл DLL должен находиться в том же локальном (не сетевом) каталоге, что и EXE-файл.

Из-за особенностей ГИС ObjectLand папка с импортируемыми файлами и папка, в которой будет создана ГБД, не должны располагаться по пути вроде «\\SERVER\SHARE\» (так называемый UNC-путь), проще говоря, путь должен начинаться с латинской буквы, даже если папка сетевая, например «Z:\SHARE\». Так как при длительном импорте сетевая папка может стать недоступной (например, из-за отключения питания сервера), рекомендуется располагать и импортируемые данные, и ГБД на локальном диске.

14 сентября 2007 г.

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

Патч для ObjectLand 2.6.9

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

Программа для массового импорта файлов
(ObjectLand 2.6.9)

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

Патч для ObjectLand 2.7.5

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

Программа для массового импорта файлов
(ObjectLand 2.7.5)

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