Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 28 мар 2024 20:49

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Подписи на линиях
СообщениеДобавлено: 28 авг 2006 14:40 
Гуру
Гуру

Зарегистрирован:
14 дек 2005 20:20
Сообщения: 274
Откуда: Черновцы
Имеем длинную линию (газопровод или т.п.) Вдоль этой линии выставлены подписи. Добавляем с ctrl точку в конец линии и все подписи улетают :shock: :cry:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 авг 2006 09:02 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1035
Откуда: г. Харьков
Процитирую своё собственное письмо на help@vingeo.com от :!: 15 декабря 2005г.

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

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

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

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

Конец цитаты.
[/quote]


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 сен 2007 14:39 
Гуру
Гуру

Зарегистрирован:
14 дек 2005 20:20
Сообщения: 274
Откуда: Черновцы
Как ни прискорбно - но эту немаловажную просьбу с успехом игнорируют.

Но все пришло к тому что это делать надо. На данный момент стала очень острая проблема стыковки и связки в одно целое большого количества планшетов, которые естественно рисуют разные люди.

И теряние часов на восстановление подписей, мягко говоря неприемлимо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 окт 2007 10:46 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1035
Откуда: г. Харьков
К сожалению, проблема связана со способом, каким Дигитал хранит положение подписей. Если проанализировать формат файла dmf, то можно увидеть, что сохраняются не абсолютные координаты месположения подписей, а дельты, координаты относительно центра объектов. Естественно, при изменении формы объекта его центр пересчитывается, подписи "ползут".
Такое положение вещей вобщем-то логично для полигонов, контуров зданий, для линейных же объектов приводит к вышеописаным проблемам.
Таким образом, надо менять формат, или хотя бы внутреннюю обработку подписей вести в абсолютных, а при записи/чтении возвращаться к принятой схеме. Словом, проблема. :(

:!: Однако , если говорить только о подписях длин линий и номеров точек, реализовать их правильную обработку можно и нужно чисто алгоритмически! Ведь каждому сегменту/узлу соответствует своя подпись, остается только их переставить требуемым образом при редактировании объекта(ов).


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 окт 2007 13:50 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
04 ноя 2004 17:33
Сообщения: 109
Откуда: Калининград
Категорически поддерживаю!
Сам не раз подымал эту давнюю проблему в разных темах!

В случае деления линии на части - подписи остаются на месте, слава Богу. При этом они, естественно, дублируются, оставаясь подписанными у обоих частей.
Это тоже не может не раздражать.

Проблема неоднозначная, конечно. Алгоритмизировать ее решение непросто. Нужно менять формат DMF-а...

Предлагаю хотя бы ввести настройку типа "Не перемещать подписи при редактировании узлов"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 окт 2007 16:21 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1035
Откуда: г. Харьков
Алгоритм не так сложен как кажется. Речь (опять таки!) лишь о частном случае - параметрах -10, -9. С остальными все не так просто. :(

Исходим из того, что нам доступно два состояния объекта - до и после изменения узла.

Тогда для предыдущего состояния объекта:
- вычисляем и запоминаем для каждой подписи АБСОЛЮТНЫЕ координаты
- запоминаем разницу поворота подписи и дир угла каждого сегмента (для длин линий, параметр -10)

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

При добавлении/удалении узла принцип тот же, необходимо только учесть добавленую или удаленную подпись. Аналогично соединение/расчленение.

Такой подход позволит свести возню с подписями к минимуму. Основная часть подписей останется на своих местах. :)


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 окт 2007 13:14 
Гуру
Гуру

Зарегистрирован:
14 дек 2005 20:20
Сообщения: 274
Откуда: Черновцы
Dmitriy Fedorov писал(а):
Алгоритм не так сложен как кажется. Речь (опять таки!) лишь о частном случае - параметрах -10, -9. С остальными все не так просто. :(

Исходим из того, что нам доступно два состояния объекта - до и после изменения узла.

Тогда для предыдущего состояния объекта:
- вычисляем и запоминаем для каждой подписи АБСОЛЮТНЫЕ координаты
- запоминаем разницу поворота подписи и дир угла каждого сегмента (для длин линий, параметр -10)

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

При добавлении/удалении узла принцип тот же, необходимо только учесть добавленую или удаленную подпись. Аналогично соединение/расчленение.

Такой подход позволит свести возню с подписями к минимуму. Основная часть подписей останется на своих местах. :)


Слишком запутанное решение. Предлагаю так
При выделении объекта сохраняется его центр. После изменения все подписи смещаются обратно на дельту между старым и новым центром. Всё просто и эффективно. И в форматах ничиго меннять не надо. подписи которые будут на изменяемых сегментах я с удовольствием буду двигать сам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 окт 2007 08:22 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1035
Откуда: г. Харьков
Dkrav писал(а):
<...>После изменения все подписи смещаются обратно на дельту между старым и новым центром. <...>


Не пойдет! :) Это как раз текущая реализация, именно так сейчас дигитал и действует.

Например, полилиния из двух сегментов, подписи длин линий:

10 10
o---------o*----------o

Изменяем узел:

o
|
10 * 10
|
о---------о


о узел
---- линия
* цетр размаха


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 окт 2007 13:08 
Гуру
Гуру

Зарегистрирован:
14 дек 2005 20:20
Сообщения: 274
Откуда: Черновцы
Идет. я проверял :)
Просто надо учитывать изменяемый сегмент или нет. На изменяемых естественно надо доворачивать и передвигать руками. на статических всё будет стоять на своих местах


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 окт 2007 07:56 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Цитата:
Dkrav писал(а):
<...>После изменения все подписи смещаются обратно на дельту между старым и новым центром. <...>


Не пойдет! Smile Это как раз текущая реализация, именно так сейчас дигитал и действует.



Нет. Так как раз Digitals не действует. При изменении центра размаха объекта положение подписей не пересчитывается, а так как позиции подписей -это не абсолютные координаты, а смещения относительно центра размаха объекта, то при этом и происходит смещение подписей.

На мой взгляд самое простое и эффективное решение предложил Dkrav. Хотя конечно, в идеале, неплохо бы ввести понятие "якоря" для подписей, который мог бы цеплятся не только к центру размаха объекта но и к каждому сегменту/узлу.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 окт 2007 13:31 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1035
Откуда: г. Харьков
Bondarets Alexander писал(а):
Нет. Так как раз Digitals не действует. При изменении центра размаха объекта положение подписей не пересчитывается, а так как позиции подписей -это не абсолютные координаты, а смещения относительно центра размаха объекта, то при этом и происходит смещение подписей.


Хм.. Ну собственно я выше об этом и написал, а потом сам себя перехитрил в процессе полемики. :)
ОК, вносим дельту, остальное поправим руками.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 ноя 2007 14:44 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Цитата:
ОК, вносим дельту, остальное поправим руками.


Пересчет позиций подписей при редактировании точек объекта уже работает. Теперь подписи остаются на своих местах и не сползают при добавлении/удалении точек. Скачивайте новую версию.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 2 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB