Сглаживание углов полигонов

MapInfo, MapBasic
Аватара пользователя
vladlen666
Активный участник
Сообщения: 135
Зарегистрирован: 22 май 2011, 01:36
Репутация: 3
Откуда: Тверская область

Re: Сглаживание углов полигонов

Сообщение vladlen666 » 01 окт 2011, 19:02

ДА я подключил утилитку. В нее входят файлы:

Untitled.TAB
Untitled.MAP
Untitled.ID
Untitled.DAT
smooth.MBX
smooth.mb
smooth.dll
sample.WOR

1. Создал папку "smooth" куда загрузил все эти файлы (c:\Program Files (x86)\MapInfo\Professional\Tools\)
2. Подключил утилиту в MI
3. В итоге открылась таблица Untitled.TAB и была создана таблица Untitled2.TAB Полигон из первой таблицы был преобразован во второй...
Только что дальше? Утилита отключалась!

Я попробовал заменить слой Untitled.TAB в папке с утилитой на свой слой с полигонами. Но утилита потребовала наличие в таблице 2 соответствующих колонок. Я добавил эти колонки в свою таблицу с полигонами.
В результате утилита сработала нормально но в созданной таблице Untitled2.TAB оказался только один объект. А в исходной таблице около 300 полигонов.

reasonat
Завсегдатай
Сообщения: 257
Зарегистрирован: 10 июн 2009, 12:21
Репутация: 0
Откуда: Екатеринбург
Контактная информация:

Re: Сглаживание углов полигонов

Сообщение reasonat » 03 окт 2011, 12:49

в коде smooth.mb что-то не нашелся цикл по записям таблицы или выборке объектов. только обработка первой записи и все. Допилить надо )

Аватара пользователя
vladlen666
Активный участник
Сообщения: 135
Зарегистрирован: 22 май 2011, 01:36
Репутация: 3
Откуда: Тверская область

Re: Сглаживание углов полигонов

Сообщение vladlen666 » 04 окт 2011, 15:32

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

Может быть что-нибудь есть по сглаживанию линий? То есть я понимаю что в самой мапинфо есть инструмент для представления линий в сглаженном виде. Но я имею в виду другое. Инструмент, который бы сглааживал линию в реальности, создавая дополнительные узлы. Тогда полгоны можно было бы превращать в линии, сглаживать линии этой утилиты, а потом линии превращать обратно в полгоны.

Кажется я встречал что-то опдобное. Но убей не помню что это была за утилита.

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Сглаживание углов полигонов

Сообщение Boris » 05 окт 2011, 11:39

Что-то подобное есть автокаде и MicroStation - называется построение кривых Безье или сплайнов. Может строиться как через точки, так и максимально интерполируя полилинию, но не проходя через точки. В EasyTrace, если не путаю, т.к. знаю только по описанию, с версии 8.хх появилась такая же возможность.
Наверное умеют и другие CAD программы.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Сглаживание углов полигонов

Сообщение Александр Мурый » 05 окт 2011, 12:34

Вставлю свои пять копеек. Вот пример сглаживания полигонов в GRASS (модуль v.generalize)

Алгоритмы сглаживания:
Boyle's Forward-Looking
McMaster's Sliding Averaging
McMaster's Distance-Weighting
Chaiken's
Hermite Interpolation
Snakes

Для полигонов на картинке был использован "snakes".
Редактор материалов, модератор форума

fobos.rst
Новоприбывший
Сообщения: 2
Зарегистрирован: 28 май 2013, 06:56
Репутация: 0

Re: Сглаживание углов полигонов

Сообщение fobos.rst » 28 май 2013, 07:40

Александр Мурый писал(а):Возможно, поможет вот эта утилита.
smooth_poly3.zip
она только полигоны может сглаживать? просмотрел скаченный пример, увидел, что сглаживание происходит по контуру. А если мне нужно, чтобы сглаживание было по опорным координатным точкам?
Вот например, есть у меня дорога, построенная по координатам. На картинке слева видно, что она выглядит как ломанная кривая. Задача: нужно сгладить линию так, чтобы координатные точки остались на линии. Я же пока что нашел в Мап-е такую функцию, которая позволяет выделить линию и через меню "Объект - Сгладить углы" произвести сглаживание (рисунок справа), но при этом как видно на рисунке точки не попадают на линию, т.к. сглаживание происходит не по опорным точкам, а на основе всей "траектории" линии что ли, если так можно выразиться. А моя задача заключается в том, чтобы эти координатные точки как раз таки и оставались на сглаженной линии
Изображение

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 793
Ваше звание: званий не имею
Откуда: Москва

Re: Сглаживание углов полигонов

Сообщение Александр Мурый » 30 май 2013, 13:20

fobos.rst писал(а):Задача: нужно сгладить линию так, чтобы координатные точки остались на линии.
Не знаю насчёт MapInfo, но можно попробовать сгладить линии в других ГИС (например, "Безье" в ArcGIS или с помощью модуля GRASS v.generalize (методом Hermite).
Редактор материалов, модератор форума

Boris
Гуру
Сообщения: 4205
Зарегистрирован: 10 апр 2006, 22:34
Репутация: 433
Откуда: Париж

Re: Сглаживание углов полигонов

Сообщение Boris » 31 май 2013, 01:07

Запрошенный функционал выходит за рамки универсальных ГИС, но он является стандартным функционалом КАД пакетов. Например, в Microstation около 5 различных видов "гладких" кривых, кривых Безье, сплайн-кривых с набором вариантов и параметров.
Именно выбор типа кривой и ее параметров определят поведение и вид кривой - как она проходит через узловые точки, какую гладкость имеет и т.п.
Мапинфо не имеет достойного инструмента в стандартной поставке, однако, в сети встречаются программы и пакеты, я видел платные, которые решают некоторые вид задач построения гладких кривых по опорным точкам.

ani.g
Новоприбывший
Сообщения: 5
Зарегистрирован: 03 апр 2013, 10:26
Репутация: 0

Re: Сглаживание углов полигонов

Сообщение ani.g » 14 июн 2013, 12:32

Чтобы не было много узлов в режиме Поток (N):
Заходим: настройка - режимы - окно карты - и меняем значение "детальность потоковой оцифровки". :D

JMc
Участник
Сообщения: 56
Зарегистрирован: 22 янв 2009, 14:56
Репутация: 0
Откуда: Владивосток

Re: Сглаживание углов полигонов

Сообщение JMc » 15 июн 2013, 06:46

Попробуйте MICAD. Есть в стандартной поставке MI либо на сайте ESTI-MAP.
Утилита умеет строить сплайны. Может подойдёт.

Veronika_Coconut
Интересующийся
Сообщения: 40
Зарегистрирован: 17 июл 2020, 09:11
Репутация: 2
Откуда: Киев

Re: Сглаживание углов полигонов

Сообщение Veronika_Coconut » 01 фев 2021, 11:27

Можно использовать Smooth geometry алгоритм через Processing Toolbox > QGIS geoalgorithms > Vector Geometry Tools, или как в моей версии это просто Векторная геометрия> Сглаживание. Там много опций.
Есть еще вариант превратить полигон в линию, а дальше воспользоватся утилитой Generalizer.

Ответить

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

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

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