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

 

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

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

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

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

Импорт надписей в ГИС ObjectLand
посредством CorelDraw

При импорте графической информации в ГИС ObjectLand из общепринятых обменных ГИС-форматов не всегда удаётся импортировать надписи на карте. Например, обменный формат SHP (ArcGIS) в принципе не поддерживает такие графические объекты, как тексты, возникают сложности и при импорте текстов из формата DXF (продукты AutoDesk). Итак, после импорта «штатными» средствами ObjectLand имеется карта с геометрическими и атрибутивными (табличными) данными, но без надписей. К счастью, современные графические программы поддерживают экспорт экранной графики в один из низкоуровневых векторных форматов, например, EMF, WMF, EPS, PDF. В векторном файле сохраняется в точности то, что видит пользователь в окне просмотра – линии, заливки и, конечно же, тексты. Все эти форматы (а также DXF) можно открыть программой CorelDRAW и, пересохранив данные в формате CDR, импортировать в ObjectLand при помощи описываемой программы, которая может быть скачана здесь.

Требования к системе

Требуется наличие на компьютере CorelDRAW 13 и ObjectLand 2.6.x, а также среды NET Framework 2.0. ObjectLand должен быть установлен вместе со своим COM-сервером, то есть «типичная» установка не годится, нужна «полная». Наличие исполняемой среды NET Framework 2.0 обязательно, в настоящее время её дистрибутив предоставляется бесплатно по адресу http://www.microsoft.com/ru-ru/download/details.aspx?id=1639.

Получение исходных данных для импорта

В программе-источнике исходных данных (например, ArcMap) надо подготовить на экране нужное изображение: включить нужные слои и стили отображения, установить такое увеличение, чтобы требуемый географический участок занял всю видимую часть графического окна, не будучи при этом обрезан по краю. Желательно отключить все нетекстовые слои, кроме необходимых для пространственной привязки (например, оставить только «сетка квадратов»). После этого средствами самой программы (обычно это пункты меню «Экспорт...» или «Сохранить как...») следует сохранить видимые на экране графические данные в файл одного из векторных форматов EMF, WMF, EPS, PDF, DXF. Если в программе есть такой выбор, надо обязательно потребовать сохранять тексты «как тексты», а не «как кривые». Для сохранения графики из ArcMap в формате EMF следует использовать скрипт, описанный здесь, так как он даёт значительно лучшее качество по сравнению со встроенной командой ArcMap. Затем сохранённые данные следует передать пользователю ObjectLand, который сможет импортировать тексты при помощи CorelDraw и представленной здесь программы.

Подготовка к импорту

Полученный файл с векторными данными надо открыть в CorelDraw, выделить рамкой все объекты и дать команду «разгруппировать всё» (но не «разгруппировать», это разные команды). После этого иногда может понадобиться вручную уменьшить размер некоторых надписей, которые занимают в десятки раз больше места, чем их соседи (такое иногда случается после экспорта из ArcMap). Здесь удобно использовать операцию «Поиск и Замена» по размеру шрифта. После подготовки графики к импорту надо сохранить её в собственном формате CorelDraw – в CDR-файле.

Импорт данных из CorelDraw в ObjectLand

При помощи предлагаемой здесь программы можно импортировать во вновь создаваемую ГБД линии (только curves) и тексты (только artistic-типа) с первой страницы произвольного CDR-файла. Растровые изображения, paragraph-тексты, неразгруппированные объекты, различные «эффекты» и объекты (например, эллипсы, прямоугольники, powerclip'ы и т.д.) не подлежат импорту.

После запуска программы и нажатия единственной доступной пользователю кнопки предстоит:

1) Указать файл формата CorelDraw (CDR), на первой странице которого находятся объекты для импорта.

2) Выбрать папку, в которой будет создана новая ГБД с импортированными из CDR-файла текстами и линиями.

3) Ввести число – масштабный множитель. О величине масштабного множителя будет сказано ниже.

4) Подождать результат, что может занять до нескольких десятков минут.

О выборе масштабного множителя

Данные, содержащиеся в одном и том же CDR-файле, следует импортировать дважды. Первый раз данные всегда импортируются с множителем, равным единице. Полученную в результате импорта ObjectLand-карту, содержащую надписи (назовём её А), надо открыть в ObjectLand в окне просмотра и измерить «линейкой» какой-либо характерный размер на этой карте (например, между двумя развилками или пересечениями линейных объектов, но только не между надписями), и записать его на память. Для уменьшения влияния погрешности измерения желательно мерять «дальние» расстояния, например, от левого нижнего угла карты до правого верхнего. После этого карту с текстами следует закрыть и удалить, она больше не понадобится. Предполагается, что к данному этапу работы в ObjectLand уже имеется «немая» (без текстов) карта того же географического района, к которой, собственно, и предстоит добавить тексты (назовём её Б). Надо открыть в ObjectLand эту карту и измерить в точности то же самое расстояние, которое измеряли на карте А. Дальше остаётся узнать масштабный множитель, разделив расстояние «по карте Б» на запомненное ранее расстояние «по карте А». С этим масштабным множителем следует провести повторный импорт из того же CDR-файла, и только теперь импортированные данные будут иметь правильный масштаб (назовём эту третью карту – В).

Добавление импортированных текстов
   в карту ObjectLand без надписей

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

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

1) При импорте из CorelDraw происходит смещение текстов от исходного расположения: буквы надписи сдвигаются от начала строки к её концу. Кроме того, надписи, состоящие из одиночных букв, могут немного «рассыпаться», «плясать». Устранить эти недостатки не удаётся.

2) При запуске программы иногда может появляться фирменная заставка CorelDraw. В этом случае надо нажать на заставке кнопку «Продолжить» («Launch a program»).

3) Картографические данные, сохранённые в экранных векторных форматах (например, EMF), имеют непредсказуемый масштаб. Поэтому если приходится импортировать несколько пространственных планшетов, полученных из одного источника, каждый из них следует импортировать дважды, как это было описано выше, потому что масштабный множитель для каждого планшета будет различный, даже если зрительно они кажутся одинакового масштаба.

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

7 июня 2007 г.

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

Программа для импорта надписей
(для версий 2.6.x)

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

Программа для импорта надписей
(для версий 2.7.x)

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