0
Completed

Аппроксимация дуг

Сергей Попов 12 years ago updated by Михаил Власов 11 years ago 5

Трассировка с буферной зоной  и новый функционал пространственных операций создают геометрические объекты с дугами.

Приходится заменять дуги отрезками, т.к. Росреестр и множество форматов пространственных данных не умеют с ними работать.

В настоящий момент это можно сделать, применив последовательно экспорт в MIF/MID и импорт из него.

Желательно вынести эту функцию в контекстное меню, а ещё лучше в окно "Свойства ребра" с возможностью указать величину погрешности аппрокцимации для выбранной дуги (дуг).

Нюанс (не для реализации, пока только для обсуждения):

При аппроксимации вроде бы все и всегда заменяют дугу фрагментом ВПИСАННОГО многоугольника. При этом площадь полигона уменьшается (дуги обычно выпуклые).

Ещё можно применить ОПИСАННЫЙ многоугольник, площади будут увеличиваться.

Средний вариант (самый сложный) - средний между ВПИСАННЫМ и ОПИСАННЫМ. При аппроксимации может быть реализован меньшим числом рёбер (для заданной погрешности) и изменение площади значительно меньше.

Обратная задача (замена рёбер дугой) надеюсь не имеет прикладного значения.

И ещё: как данный функционал может быть представлен в API, если там нет рёбер, есть вершины?

Answer

Answer
Completed

Добавлен модуль операций над контурами, в котором содержится указанная функция аппроксимации дуг.

Ссылка: http://www.integro.ru/forum/viewtopic.php?t=1328

Declined

Зачем вам нужны аппроксимированные дуги именно в ИнГео?

При экспорте в форматы, не поддерживающие дуги (например MIF/MID) аппроксимация выполняется автоматически.

Практически все работы я делаю в ИнГЕО и только в ИнГЕО без перепрыгивания в MapInfo, ArcGIS, AutoCAD, ArchiCAD, Microstation и т.д..

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

Для этого удобно использовать ТРАССИРОВКУ с буферной зоной отличной от нуля.

В результате мы получаем объекты с закруглениями с месте перегиба.

Конечный результат необходимо аппроксимировать прямыми с округлением до см.

Площади и другие характеристики должны быть посчитаны уже с учётом конечного результата и упакованы в XML-формат.

Вот мне и не хватает всего-то аппроксимации.

По моему логично, когда продукт содержит комплекс стандартных, типовых, базовых функций над объектами, в том числе и масштабирование.

Перечитал мотивировку. Отвечу ещё раз, теперь только другими словами.

Аппроксимированные дуги - как то не так сформулировано, может быть и понято не так?

Дуги у меня в ИнГЕО формируются (ТРАССИРОВКА).

Мне нужны отрезки вместо дуг, но при этом не простое спрямление крайних точек, а учитывающее введённое значение погрешности аппроксимации.

Я так понял, что вы выгружаете данные в XML при помощи какого-то модуля.

Тогда там и надо вставлять аппроксимацию. Алгоритм аппроксимации не такой уж и сложный (наверняка у вас есть).

Зачем понижать точность в исходном материале (ИнГео)?

В модуле нет апроксимации. Он предполагает что исходная информация из ИнГЕО - полигоны, с границей состоящей только из прямых отрезков.

Это только один пример.

Аппроксимация могла бы быть как в интерактивном режиме доступна рядовому пользователя, так и в API. Любой вариант интересен, а особенно оба.

Реализация уже есть в модули экспрота в формат MIF/MID.

Было бы чудесно обернуть её в интерфейс API.

 

Округление (понижение точности) - это было так, попутно. К данной теме отношения не имеет и уже имеет несколько решений.

Но всё-же маленькое пояснение:

Росреестр округляет координаты земельных участков. Надо признать что это очень важный информационный слой при работе с территорией. Формируя земельные участки приходится округлять координаты формируемых ЗУ и исходя из этого вычислять площадь.

Росреестр прописывает площадь ЗУ с дельтой (плюс, минус) и влияние округления на площадь не привысит эту погрешность, но Росррестр считает что эта дельта придумана не для нас: - "Что вам мешает указать достоверную площадь? Какое такое округление, что за детский лепет, сначала округляйте а уж потом вычисляйте площадь.".

Возможен ли ещё какой-то выход из данной ситуации, чтобы в ИнГЕО не понижать точность исходных данных и вычислять площадь на основании округлённых координат?

Конечто возможен, но для этого надо писать модуль или встраивать в ИнГЕО. Допустим в окне свойств объекта отражается площадь и периметр по точным координатам. Там много места чтобы отобразить ещё и аналогичные параметры с учётом округления. Разрядность округления можно вынести в общие настройки.

 

"Реализация уже есть в модули экспрота в формат MIF/MID."
Она не совсем корректна. Это проявляется в следующем, если есть два соседних объекта с общей дугой, то при экспорте одна и таже дуга в разных объектах пароксимируется по разному и в итоге узлы на результирующих объектах не совпадают. Видимо зависит от направления объекта.

Completed

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

Ссылка: http://www.integro.ru/forum/viewtopic.php?t=1328

Answer
Completed

Добавлен модуль операций над контурами, в котором содержится указанная функция аппроксимации дуг.

Ссылка: http://www.integro.ru/forum/viewtopic.php?t=1328