Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Ноябрь
Зарегистрирован: 12.05.2009 Сообщения: 55 Откуда: Уфа
|
Добавлено: Ср 19 Авг 2009 10:07 Заголовок сообщения: Скрипт преобразования дуг в набор прямых отрезков (ruby) |
|
|
Я написал скрипт (см название топика, приложения к сообщению и README).
Для выполнения требуется интерпретатор ruby http://www.ruby-lang.org/en/downloads/
Я рекомендую Ruby 1.8.6 One-Click Installer.
Приветствуются идеи по поводу встраивания в интерфейс Ингео.
пс
перед любыми глобальными изменениями не забывайте бэкапиться.
Описание: |
|
Скачивание |
Название файла: |
arch_by_pieces.zip |
Размер файла: |
3.62 KB |
Скачено: |
1787 раз(а) |
|
|
Вернуться к началу |
|
|
nikser
Зарегистрирован: 09.03.2005 Сообщения: 535 Откуда: г. Братск
|
Добавлено: Ср 19 Авг 2009 16:49 Заголовок сообщения: |
|
|
Вопрос
А какую задачу это решает?
За 10 лет работы неоднократно была обратная задача из набора отрезков сделать дугу, а из дуги в отрезки ни разу не встретилось необходимости.
И еще вопрос. Объект - горизонталь состоит из множества линейных ребер и дуг, можно ли провести операцию с одной дугой не затрагивая остальные?
_________________ Сергей Николаев |
|
Вернуться к началу |
|
|
Ноябрь
Зарегистрирован: 12.05.2009 Сообщения: 55 Откуда: Уфа
|
Добавлено: Чт 20 Авг 2009 08:16 Заголовок сообщения: |
|
|
Цитата: | А какую задачу это решает? | Нам необходимо для перевода данных в WGS84.
Цитата: | И еще вопрос. Объект - горизонталь состоит из множества линейных ребер и дуг, можно ли провести операцию с одной дугой не затрагивая остальные? |
Метод break_arch_by_piece работает как раз с одной вершиной. Сейчас через него прогоняются все вершины всех контуров и фигур объекта.
|
|
Вернуться к началу |
|
|
nikser
Зарегистрирован: 09.03.2005 Сообщения: 535 Откуда: г. Братск
|
Добавлено: Чт 20 Авг 2009 11:43 Заголовок сообщения: |
|
|
Цитата: | Нам необходимо для перевода данных в WGS84 |
А что мешает дугу переводить в WGS84
у меня не было проблем при трансформации карт связанных с дугами
_________________ Сергей Николаев |
|
Вернуться к началу |
|
|
Ноябрь
Зарегистрирован: 12.05.2009 Сообщения: 55 Откуда: Уфа
|
Добавлено: Чт 20 Авг 2009 12:12 Заголовок сообщения: |
|
|
Цитата: | А что мешает дугу переводить в WGS84 | Наш модуль не оставляет дуг. Потому как должны получаться элипсы и т.п. фигуры, а не идеальные окружности.
|
|
Вернуться к началу |
|
|
nikser
Зарегистрирован: 09.03.2005 Сообщения: 535 Откуда: г. Братск
|
Добавлено: Чт 20 Авг 2009 19:12 Заголовок сообщения: |
|
|
Все-таки я не понял смысла этой операции
И почему не может быть идеальных дуг (окружностей)
Насколько я знаком со строительством (почти 30 лет) проектировщики рисуют развязки как раз правильными окружностями (дугами).
Или взять рельеф, попробуйте насыпать песчаную горку.В сечении горка будет представлять собой правильные окружности.
А что касается ГИС применение дуг позволяе на порядок уменьшить количество точек, соответственно и времени отрисовки
_________________ Сергей Николаев |
|
Вернуться к началу |
|
|
Ноябрь
Зарегистрирован: 12.05.2009 Сообщения: 55 Откуда: Уфа
|
Добавлено: Пт 21 Авг 2009 08:25 Заголовок сообщения: |
|
|
Как может проецирование на площадь под углом (да еще и поворотом) давать идеальную окружность. Оно даст искаженную окружность, а в Ингео нет средств рисования таких дуг (например кривых Безье).
|
|
Вернуться к началу |
|
|
nikser
Зарегистрирован: 09.03.2005 Сообщения: 535 Откуда: г. Братск
|
Добавлено: Пт 21 Авг 2009 09:42 Заголовок сообщения: |
|
|
Ну если в таком ракурсе, тогда ни одна кривая не будет правильной, ни окружность ни эллипс и.т.п
Просто всегда есть какое-то приближение, и если оно в пределах допуска то зачем тогда об этом говорить
Я не против вашего модуля просто мне хотелось узнать при решении каких задач требуется такая операция.
Я учитываю и работу Ингео. Чем больше в объекте точек, тем медленнее будет с ним работа
_________________ Сергей Николаев |
|
Вернуться к началу |
|
|
Сергей Попов
Зарегистрирован: 05.03.2005 Сообщения: 299 Откуда: г. Тольятти - Самара - Копейск
|
Добавлено: Ср 09 Сен 2009 14:59 Заголовок сообщения: |
|
|
У меня есть пример, где применить выше указанный срипт.
Надо построить санитарно-защитные зоны промплощадок, на их базе сформировать КАРТУ ГРАДОСТРОИТЕЛЬНОГО ЗОНИРОВАНИЯ, утвердить её и копию (вместе с электронной копией) передать в РОСНЕДВИЖИМОСТЬ.
На первом этапе в ИНГЕО применяю ТРАССИРОВКУ с указанием не нулевой БУФЕРНОЙ ЗОНЫ. При этом углы сглаживаются дугами с радиусом равным буферной зоне.
На конечном этапе мне подсовывают некую инструкцию РОСНЕДВИЖИМОСТИ, в которой описание границ ТЕРРИТОРИАЛЬНЫХ ЗОН описывается только ПРЯМЫМИ ОТРЕЗКАМИ, между точками.
ДУГИ они обрабатывать не умеют.
При этом надо учитывать, что как только я им передам границы ТЕРРИТОРИАЛЬНЫХ ЗОН в ломаных, сразу-же и сам обязан буду придерживаться этих ломанных линий.
За одно ещё вопросы:
1. Окружность можно вписать в многоугольник и описать многоугольником. Т.е. при преобразовании дуги, прямые могут быть расположены с внутренней части окружности, с внешней части окружности и иметь промежуточное положение между двумя этими крайностями. Как это реализовано в данном скрипте?
2. Меня тоже занимает вопрос быстродействия. Безусловно, контур с меньшим количеством рёбер должен прорисовываться быстрее, но если рёбра разные по типу (отрезки, дуги), то тогда не всё так очевидно. Можно ли с точки зрения быстродействия найти соотношение между дугой и отрезком?
_________________ г. Тольятти, г. Самара, ОАО "КУЗНЕЦОВ" |
|
Вернуться к началу |
|
|
Ноябрь
Зарегистрирован: 12.05.2009 Сообщения: 55 Откуда: Уфа
|
Добавлено: Вт 29 Сен 2009 08:51 Заголовок сообщения: |
|
|
1) данный многоугольник вписанный.
2) отрезки скрипт пропускает (т.е. обрабатывает нормально), 66 000 объектов обрабатывали примерно 15 минут. Встречались объекты с 10 000 - 20 000 точек.
пс простите за неоперативный ответ
ппс в первой версии скрипта ошибка: не выставляется флаг замкнутости линии.
|
|
Вернуться к началу |
|
|
|