глобальное редактирование подписей

Обращаюсь к разработчикам.
Не знаю возникают у кого-нибудь еще кроме меня такие потребности, но все-таки изложу.
:bulb:
Очень хочется иметь под рукой хороший инструментарий для глобального редактирования уже существующих подписей большого количества объектов. Ну например:

  • удалить все подписи ВСЕХ параметров (а не по одному, их много бывает);
  • изменить угол, отступ, размер подписей определенного параметра помеченных объектов;
  • построить запрос типа: “найти объеты с подписями такого-то параметра, такого-то размера, такогото угла разворота, такого-то отступа”
  • найти дублирующиеся подписи (они часто появляются при разделении линейного объекта на части, тогда получается очень некрасиво. Получается линия с подписью где-то очень далеко, а человек, который делит линию этого даже не замечает). Таким образом накапливается уже много объектов с неадекватно размещенными подписями, а обнаружить это никак нельзя. Хуже всего то, что оторвав у объекта кусок, неопытный пользователь может изменить содержание подписи, о существовании которой незнает и которая находится уже на другом объекте. :exclamation:
  • список можно продолжать долго… Фантазия безгранична :slight_smile:

Можно встроить эти функции в меню, можно сделать отдельным модулем, незнаю как лучше.

Дело в том, что подпись - это объект чисто Digitals’овский. Нельзя его корректно экспортировать, отредактировать его в какой-то другой среде и вернуть обратно. (если можно, то скажите куда)

Графика и семантика замечательно экспортируется\импортируется куда угодно (за это спасибо). Я с ней делаю что хочу.
А вот с подписями я БЕЗОРУЖЕН в борьбе с армией неопытных пользователей :frowning:

Да, действительно, работы непочатый край :slight_smile:

Предлагаю начать с функции контроля (поиска) испорченных параметров. Какие могут быть критерии поиска?

Я понял, что выход подписи за габариты объекта это наиболее распространенная ошибка.
Что еще?

Да, но это не всегда ошибка. Для каких-то объектов\параметров это криминал, а для каких-то номально. Расстояние от объекта до подписи тоже зависит от разных факторов. Жесткого критерия здесь не существует. Поэтому я и хочу иметь возможность строить достаточно сложные запросы.

Еще часто лепят несколько подписей от одного параметра в разных местах (лишь бы написать). Такое очень трудно обнаружить (видишь подпись, а где объект - найти невозможно).

Чаще всего:

  • подписи площадных объектов должны быть внутри них
  • подписи линейных объектов - на линии, в независимости от того, где у объекта центр (при редактировании линейного объекта подпись смещается вместе с центром объекта)

Вобщем сложное это дело - вылавливать такие вещи.

Поэтому предлагаю вам заниматься не этим, а заняться более перспективным делом - ЭКСПОРТОМ данных (включая подписи) в СУБД.
Вот уж где богатый инструментарий для анализа!..
Это помоему гораздо дешевле по трудозатратам для вас и ОГРОМНЫЙ плюс для пользователей.

Подробнее об этом напишу по почте.

Подписи!
Было бы здорово сделать “независимые” цвет шрифта, стиль заливки и ее цвет, для выносимых подписей разных объектов с одного параметра на карту!!!
Добавить стиль заливки “кайма”!

А может быть для этого подойдет просто текстовый файл?
Мы как раз недавно добавили сохранение и чтение значений параметров и подписей в ASCII-файл.

Вот пример:

//Layer 6 Ділянка паювання
//ObjectID 7
//P[1] 36 166.12
//C[0] X0.00 Y0.00 Z0.00 O0 L257
15657.98 15984.03 0.00
15519.72 15850.13 0.00
15392.54 15984.17 0.00
15543.09 16129.98 0.00
15568.68 16053.53 0.00
15574.88 16046.28 0.00
15651.63 15998.72 0.00
15657.98 15984.03 0.00

Параметры сохраняются в таком виде:

P[НомерПараметра] и, после пробела, его значение.
Подписи сохраняются в виде C[НомерПараметра], а затем смещения подписи в метрах от центра размаха объекта (X0,Y0,Z0), угол разворота (O), и признак выравнивания по вертикали и горизонтали (L).

Боюсь, на сегодняшний день, это решается только созданием параметров-двойников. Т.е., создается параметр с другим шрифтом, цветом и т.д. и прописывается внутрь формула вида =P[номер_параметра_на_который_ссылаемся]; все это присваевается слою, и нужные объекты помещаются на этот слой. Да, возможно, громоздко и не удобно. Но - решаемо!
Как вариант - два параметра-двойника принадлежат одному слою, подписываем с помощью того, который адекватнее по шрифтоцвету.

Кроме создания параметров-двойников есть еще и другой способ - создание разных слоев типа Подпись. В этом случае атрибуты шрифта (шрифт, цвет, размер) задаются в Менеджере слоев. Таким образом для одного и того же параметра можно получить разного вида подписи, если создать разные слоя типа Подпись с различными атрибутами шрифта.

А что за кайма?
Если нужно чтобы текст был в рамочке то для этого нужно установить “непустой” тип линии для соответствующего параметра. Пример здесь vingeo.com/samples/Captions.dmf

“Кайма” это замечательный визуальный элемент для оформления текста. Представляет собой цветную окантовку вокруг каждого символа, цвет которой не совпадает с цветом самого символа.
К примеру симвлы подписи - красные, а вокруг каждого из них окантовка другого цвета и толщины повторяющая контур каждого символа.

Эта возможность реализована в Мапинфо и значительно улучшает визульное восприятие теста.

Вдогонку, будет ли реализовываться полупрозрачность заливки слоев полигональных объектов ?.

Да, этим можно было бы пользоваться.
Но было бы здорово, если бы координаты записывались в ASCII-файл не с округлением до 2-х знаков а полностью. Округлить никогда не поздно.

Все дело в том, что именно в таком виде они хранятся в Digitals.
В отличие от координат точек объектов, которые сохраняются в вещественном виде, параметры привязки и прочие атрибуты текстовой подписи хранятся в виде текстовой строки.

Однако учитывая то, что это координаты на местности, то сантиметровой точности вполне достаточно, так как даже в самом крупном масштабе 1:100 это будет 0.1 мм на бумаге.

Так я и имею в виду координаты объектов, которые хранятся в вещественном виде. Может можно поставить зависимость между их округлением и “точостью карты на бумаге”? Чтоб можно было, поставив точность=0, выгрузить точные координаты.

Так число знаков в координатах задается на закладке Сервис|Наcтройки|Запись.
Влияет на запись во все текстовые форматы, включая ASCII.

Очень бы хотелось иметь возможность глобального редактирования подписей, а именно:
1) измененние размера;
2) изменение положения;
3) изменение угла поворота;
4) удаление;
Все это незаменимо при работе с топосьемочными материалами.
Например, вынести на карту все номера пикетов и высот (на даный момент все равно придеться редактировать каждую подпись отдельно, изменяя положение, а в некоторых случаях и размер). При количестве пикетов порядка 500 это займет очень много времени.

Насчет размера в некоторых случаях согласен, а зачем вручную изменять положение каждой подписи? При вынесении подписей имеется возможность сразу сместить все выносимые номера вверх, а все высоты вниз чтобы они не накладывались друг на друга.

Глобальное изменение размера делается через Карта|Параметры. Глобальное удаление тоже имеется.

Каким образом это сделать?

Когда вы выносите подписи на карту пометив все нужные объекты и нажав на кпопку “Глаз” появляется окно с параметрами выноса.

В правом нижнем углу этого окна есть панель Смещения, мм. Установите там Вертикальное смещение +3 когда выносите Номер и Вертикальное смещение -3 когда выносите Высоту (конкретное значение смещения может зависеть от размера шрифта, но обычно оно в пределах 2-3 мм).

Для удаления подписи у всех помеченных объектов выберите в этом же окне операцию Удалить подпись вместо Создать подпись.

Большое спасибо.

Прошу прощения за мою невнимательность.
Совсем забыл об этой кнопке :slight_smile:

Имеется целый ряд давних “болезней” с подписями длин линий (и, очевидно, точек тоже).
Тема не раз поднималась на форуме.

  • Добавление/удаление узлов в полилинию

  • Разделение объекта в произвольном узле

  • Соединение двух объектов с подписями
    Фактически, после таких операций, подписи приходится просто удалять и создавать всё заново, что КРАЙНЕ неприятно, собенно для объектов с большим количеством узлов.
    В Инфо, естественно, мы видим не те длины, что на экране (по
    количеству сегментов полилинии, по крайней мере).

  • Редактирование положения узлов
    Синхронно сдвигаются все подписи одновременно, что тоже красоты не добавляет.

Программа сохраняет положение подписей относительно центра объекта и это вполне приемлемо в большинстве случаев.
Но в случае длин/номеров точек желательно сохранять позицию
конкретной i-той подписи относительно i-го сегмента/узла полилинии.
Ну или если не сохранять, то динамически обновлять с учетом этой специфики. Лишние/недостающие подписи, возникающие в процессе редактирования желательно автоматически удалять или вставлять.

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