| Возможности стилей линии в ObjectLand не отвечают простейшим картографическим требованиям! [ Максим ] Понедельник, 20 марта 2006, 15:45
Смелое утверждение? Ничуть. Давайте возьмём такие знаки, как "мост" или "направление течения реки". Очевидно, это линейные объекты. Согласно отечественным картографическим нормам, мост изображается с симметричными "косыми" засечками на каждом конце полотна. А "направление течения" во всём мире принято изображать стрелкой. Так вот ObjectLand'у никакая "стрелка" не по зубам. Странно и неприятно видеть такое игнорирование элементарных картографических стандартов в программе, которую её создатели считают возможным именовать "ГИС".
А ведь для других линейных объектов карты есть и другие требования, например, ставить в каждой вершине линии некую графему, повёрнутую в соответствии с направлением линейных сегментов, смежных данной вершине.
Очевидно, перечисленные требования можно эффективно реализовать только "на низком уровне", на уровне концепции стиля линии, чего, к сожалению, не наблюдается.
Если я не прав, буду очень рад узнать истинное положение вещей. |
|
| [ Максим ] Среда, 22 марта 2006, 12:57
Извините за сердитый тон, но уж очень неприятное "открытие". А как скоро его "закроют", если это вообще произойдёт ? |
|
| [ ObjectLand Development Team ] Среда, 22 марта 2006, 15:52
Создание печатных карт это до некоторой степени искусство, т.к. только художник-картограф может выбрать правильное размещение надписи, разрешит конфликты пересечения важных графических элементов и т.п. Поэтому не существует программ, строящих в полностью автоматическом режиме такую карту для печати, которую не пришлось бы доводить вручную. Те же модули, которые предназначены для создания высококачественной картографической продукции являются специализированными и не могут использоваться самостоятельно в качестве ГИС, т.к. обычно работают не в "реальном" режиме времени. Эти программы обычно используют библиотеки наборов правил для разных масштабов и отраслевых стандартов. Эти программы достаточно дорогостоящие, например Production Line Tool Set (PLTS), входящий в ArcGIS стоит $2000-4000.
Модель стилей линий в ObjectLand основывается на концепции описания звена линии. В процессе прорисовки линия строится из одинаковых звеньев, примыкающих друг к другу. Описание звена поддерживает произвольное количество графических примитивов – отрезков, окружностей, полигонов, текстовых надписей. Такая модель требует больших вычислительных затрат, т.к. требуется учет фаз звеньев, отработка поворотов линии под произвольным углом и решения других нетривиальных задач. Существующая модель позволяет решать оформительские задачи в подавляющем большинстве случаев (т.к. большинство пользователей применяют ObjectLand в большей степени как информационную систему, а не как оформительскую), и при этом в реальном режиме времени. Но путь использования специализированных модулей для подготовки карт из ObjectLand к печати и тут не закрыт, т.к. импорт из ObjectLand в SHP-файл займет несравненно меньше времени, чем работа в таком модуле по доводке документа для печати.
P.S. По поводу "направления течения реки". Что мешает создать два разных стиля, со стрелками вправо и влево и применять их для конкретного объекта в зависимости от нужного направления? Или иметь один стиль со стрелкой и реверсировать координаты линейного объекта, чтобы стрелка указывала в нужном направлении? |
|
| [ Максим Юрьевич Трухачёв ] Четверг, 23 марта 2006, 18:58
Вы упомянули, что в вашей модели стиля линии "требуется учет фаз звеньев". Пожалуйста, объясните это подробнее. Значит ли это, что OL поддерживает окончания линий (caps)? Ведь Вы сами пишете, что реализовано только ЗВЕНО линии (пусть сколь угодно сложное). Вот в Автокаде, насколько я знаю, нарисованные пользователем линии пересекаются при "рендеринге" по возможности своими не-пробельными участками, хотя и там в модели стиля линии тоже реализовано только "звено". Есть ли какие-нибудь подобные "скрытые достоинства" в Вашей системе ?
Вы пишете: "Что мешает создать два разных стиля, со стрелками вправо и влево и применять их для конкретного объекта в зависимости от нужного направления? Или иметь один стиль со стрелкой и реверсировать координаты линейного объекта, чтобы стрелка указывала в нужном направлении?" Это бы меня вполне устроило, можно было бы рисовать и "мост", и "паромную переправу"! Но разве "голова" стрелки не "поедет" вдоль линии при её интерактивном редактировании ? И разве не появятся дубли этой "головы" через каждые, допустим, 2мм на печати (если шаг стиля составляет 10 единиц), а длина стрелки превышает эти 2мм? То же самое касается "завершения" линии - почему же оно должно появляться всегда на самом хвосте линии, если в модели реализовано только "звено"? В наборе команд отрисовки линий ведь не предусмотрено никаких "окончаний" и тем более "углов".
Пожалуйста, опишите хотя бы в общих чертах алгоритм, по которому различаются "протяжённые" и "точечные" элементы графемы стиля линии, чтобы я и другие читатели этой ветки точно знали, как надо создавать стили вроде "моста", чтобы засечки не появлялись посреди достаточно протяжённого "полотна моста". |
|
| [ ObjectLand Development Team ] Пятница, 24 марта 2006, 17:31
Посыл предыдущего сообщения заключался не в перечислении "скрытых достоинств" нашей модели отображения линейных объектов (имеющиеся возможности перечислены не для Вас, а для тех, кто не знаком с ObjectLand, слышит о об этих проблем впервые, но примет на веру название данной темы). Речь шла о том, что:
1. Невозможно реализовать требования печатной картографии в системе, работающей в реальном времени. Например, знак №2263 "Обрывы земляные". Представляет собой по сути линейный объект - граница обрыва. Это обычная полилиния, но она должна иметь штрихи разной длины, перпендикулярные этой линии. Концы этих штрихов показывают подножие этого обрыва. Буду рад познакомиться с программой, которая поддерживает отображение этого знака.
2. Для выполнения работы, требующей уровня печатных карт, требуется использование специализированных систем, которые выделяются в отдельный класс программ.
3. ObjectLand поддерживает сложную модель отрисовки стиля линейного объекта, которую мы сочли предельно допустимой в смысле производительности для отрисовки в реальное время. Эта модель не позволяет
решить все проблемы, например, не позволяет показать мост условным знаком, принятым в печатной картографии. Такие сущности как стили отображения для первой и последней вершины полилинии не вызывают проблем в реализации, но они не включены в модель, используемую в ObjectLand, т.к. не представляется возможным построить полную модель, учитывающую все случаи печатной картографии (см. пример из п.1)
Об учете фаз звеньев упоминалось только для иллюстрации вычислительной сложности имеющейся модели. Звено распространяется вдоль образующей полилинии и в точках перелома учитывается фаза звена, с которой должно начаться отображение последующего отрезка полилинии. Это нетривиальная задача в случае, когда звено имеет элементы, не лежащие на образующей (т.е. когда высота минимально ограничивающего прямоугольника векторных элементов звена не равна 0). |
|
| [ Максим ] Суббота, 25 марта 2006, 12:16
Значит, всё-таки нельзя в OL нарисовать ни стрелку, ни мост. А жаль, тем более вы утверждаете "Такие сущности как стили отображения для первой и последней вершины полилинии не вызывают проблем в реализации". В заголовке темы, созданной мною, речь идёт именно о "простейших" картографических требованиях, к которым я отношу, например, "стрелку" (в широком смысле этого термина). Я нигде не возмущался отсутствием реализации у вас ВСЕГО спектра задач, решаемых при создании печатных карт. А новички (к которым я отношу и себя) должны знать о неприятных сюрпризах. |
|
| [ Максим ] Суббота, 25 марта 2006, 12:43
Кстати, об "обрывах". Такая программа есть, имя ей - Автокад (или его дешёвый аналог Интелликад). На сайтах dwg.ru, www.autocad.ru и других имеются множество реализаций отрисовки бергштрихов, некоторые даже в 3D. Я сам в своё время успешно написал и отладил такую программу, могу прислать:). К сожалению, COM-интерфейс OL не поддерживает интерактивной работы, как это сделано в автокаде, и к тому же в командах отрисовки типов линий, штриховок и векторных символов не предусмотрены НЕ-графические данные (в автокаде они называются "расширенными данными примитива"). Хотя, конечно, спасибо огромное за то, что этот COM-интерфейс у вас вообще есть, и он входит в БАЗОВУЮ поставку программы (весьма недорогую). Имея программный доступ к "геометрии", можно написать программу, "расставляющую точки над i" перед выводом на печать (чем мне, возможно, и предстоит заняться). Но это ведь очень неудобно для пользователя: закрыть ГБД, вызвать мой "расстановщик окончаний", дождаться окончания его работы, открыть ГБД, вывести на печать, стереть все окончания. При любом изменении геометрии знаков-"стрелок" - всё по-новой. К тому же пользователю надо будет постоянно помнить о соблюдении жёстких правил именования стилей, на которых будет держаться их идентификация моей программой. Всё-таки правильнее было бы предусмотреть отрисовку конечных графем непосредственно в наборе команд отрисовки стиля. Надеюсь, в будущих версиях OL это пожелание будет учтено. |
|
| [ ObjectLand Development Team ] Понедельник, 27 марта 2006, 14:59
> Я сам в своё время успешно написал и отладил такую программу, могу прислать:).
Хм, значит все-таки это заслуга не AutoCAD?
***
Спасибо за Ваши замечания. |
|
| [ Алексей ] Суббота, 22 апреля 2006, 11:07
Здравствуйте! Я по поводу стилей отображения. В целом меня все устраивает, и ObjectLand я считаю очень красивой и продуманной системой. Беда в том, что, например, при обработке данных топосъемки часто приходится конечный результат экспортировать в AutoCAD (строители требуют) или MapInfo и там доводить до ума. Нельзя ли реализовать конвертор, сохраняющий хотя бы в общих чертах стилевое оформление, или функцию преобразования элементов стиля в объекты карты? |
|
| [ ObjectLand Development Team ] Понедельник, 24 апреля 2006, 12:22
Пока мы не готовы этим заняться. Так как нет взаимооднозначного соответствия между нашими стилями и стилями в других системах, решение такой проблемы нетривиальное и эмпирическое.
> или функцию преобразования элементов стиля в объекты карты?
Это точно не будем делать, элементы стилевого оформления не должны становиться векторными объектами. |
|
ОтветитьЗнаком «*» отмечены обязательные для заполнения поля. |