Удлинение текста в атрибутивной таблице

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Игорь Сергеев
Новоприбывший
Сообщения: 10
Зарегистрирован: 22 фев 2011, 11:13
Репутация: 0

Удлинение текста в атрибутивной таблице

Сообщение Игорь Сергеев »

Уважаемые коллеги. В ходе работы столкнулся с проблемой подписей некоторых протяженных объектов. Требуется растянуть текст в подписываемом поле атрибутивной таблицы до определенной длины, по примеру: оз. Байкал -> о з. Б а й к а л.
Т.е. с расстановкой пробелов.
Знаю, что существуют подобные скрипты, но не смог нигде их найти.
Растянуть необходимо именно в поле таблицы, т.к. сама простановка подписей проводится в другой программе, которая, к сожалению, не предоставляет возможностей для редактирования текста. Заранее благодарен за любую помощь :)
ggis
Завсегдатай
Сообщения: 302
Зарегистрирован: 31 окт 2008, 10:39
Репутация: 2

Re: Удлинение текста в атрибутивной таблице

Сообщение ggis »

Подпись текста (Formatted Text->Character Spacing) не подходит? Или нужно именно в атрибутивной таблице растянуть текст?
Игорь Сергеев
Новоприбывший
Сообщения: 10
Зарегистрирован: 22 фев 2011, 11:13
Репутация: 0

Re: Удлинение текста в атрибутивной таблице

Сообщение Игорь Сергеев »

ggis писал(а):Подпись текста (Formatted Text->Character Spacing) не подходит? Или нужно именно в атрибутивной таблице растянуть текст?
именно в таблице
ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Удлинение текста в атрибутивной таблице

Сообщение ericsson »

Выгрузить таблицу в текстовик и заменить регулярным выражением?
Игорь Сергеев
Новоприбывший
Сообщения: 10
Зарегистрирован: 22 фев 2011, 11:13
Репутация: 0

Re: Удлинение текста в атрибутивной таблице

Сообщение Игорь Сергеев »

ericsson писал(а):Выгрузить таблицу в текстовик и заменить регулярным выражением?
а можно подробнее?

Вообще можно по сути решить проблему стандартным Field Calculator, в поле String есть необходимые функции, к примеру Space (), но я у меня, к сожалению, не получается построить правильную логичную комбинацию
ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Удлинение текста в атрибутивной таблице

Сообщение ericsson »

оз. Байкал
ищем (.) меняем на $1 (после единицы - пробел)
о з . Б а й к а л
ищем \s\. меняем на . (убираем лидирующий пробел перед точкой)
о з. Б а й к а л
по вкусу можно убрать двойные пробелы и пробел в конце строки
Игорь Сергеев
Новоприбывший
Сообщения: 10
Зарегистрирован: 22 фев 2011, 11:13
Репутация: 0

Re: Удлинение текста в атрибутивной таблице

Сообщение Игорь Сергеев »

Это все удобно если работать с некоторым конечным числом подписей, у меня же их очень много, да к тому же растяжение должно соответствовать длине полилинии, к которой она привязана
ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Удлинение текста в атрибутивной таблице

Сообщение ericsson »

Ну, очень большое число подписей тут не помеха, какому-нибудь PowerGREP совершенно все равно, сколько их там. А вот то, что, оказывается, разрядку нужно делать динамически - это в любом случае потребует программирования, ведь надо получить длину линии, посчитать число пробелов, которое надо добавить, поделить его на число символов в строке подписи.
Игорь Сергеев
Новоприбывший
Сообщения: 10
Зарегистрирован: 22 фев 2011, 11:13
Репутация: 0

Re: Удлинение текста в атрибутивной таблице

Сообщение Игорь Сергеев »

Разумеется, скажем, если длина линии 100 метров, а количество символов в текством поле 10, то по сути длина каждого символа должна быть 10 м. Но это при равномерном растяжении текста вдоль линии. В действительности же длина символа составляет, к примеру, 1 м... т.е. чтобы растянуть линию необходимо добавить после каждого символа еще 9 пробелов. И так для каждой подписи) В общем наверняка существуют необходимые скрипты
Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей