Аппроксимация дуг
Трассировка с буферной зоной и новый функционал пространственных операций создают геометрические объекты с дугами.
Приходится заменять дуги отрезками, т.к. Росреестр и множество форматов пространственных данных не умеют с ними работать.
В настоящий момент это можно сделать, применив последовательно экспорт в MIF/MID и импорт из него.
Желательно вынести эту функцию в контекстное меню, а ещё лучше в окно "Свойства ребра" с возможностью указать величину погрешности аппрокцимации для выбранной дуги (дуг).
Нюанс (не для реализации, пока только для обсуждения):
При аппроксимации вроде бы все и всегда заменяют дугу фрагментом ВПИСАННОГО многоугольника. При этом площадь полигона уменьшается (дуги обычно выпуклые).
Ещё можно применить ОПИСАННЫЙ многоугольник, площади будут увеличиваться.
Средний вариант (самый сложный) - средний между ВПИСАННЫМ и ОПИСАННЫМ. При аппроксимации может быть реализован меньшим числом рёбер (для заданной погрешности) и изменение площади значительно меньше.
Обратная задача (замена рёбер дугой) надеюсь не имеет прикладного значения.
И ещё: как данный функционал может быть представлен в API, если там нет рёбер, есть вершины?
Antwoord
Зачем вам нужны аппроксимированные дуги именно в ИнГео?
При экспорте в форматы, не поддерживающие дуги (например MIF/MID) аппроксимация выполняется автоматически.
Практически все работы я делаю в ИнГЕО и только в ИнГЕО без перепрыгивания в MapInfo, ArcGIS, AutoCAD, ArchiCAD, Microstation и т.д..
Одна из работ - правила землепользования и застройки с картой зон с особыми условиями использования территории, которая содержит санитарно-защитные зоны промыщленных объектов и инженерно-транспортных магистралей.
Для этого удобно использовать ТРАССИРОВКУ с буферной зоной отличной от нуля.
В результате мы получаем объекты с закруглениями с месте перегиба.
Конечный результат необходимо аппроксимировать прямыми с округлением до см.
Площади и другие характеристики должны быть посчитаны уже с учётом конечного результата и упакованы в XML-формат.
Вот мне и не хватает всего-то аппроксимации.
По моему логично, когда продукт содержит комплекс стандартных, типовых, базовых функций над объектами, в том числе и масштабирование.
Перечитал мотивировку. Отвечу ещё раз, теперь только другими словами.
Аппроксимированные дуги - как то не так сформулировано, может быть и понято не так?
Дуги у меня в ИнГЕО формируются (ТРАССИРОВКА).
Мне нужны отрезки вместо дуг, но при этом не простое спрямление крайних точек, а учитывающее введённое значение погрешности аппроксимации.
Я так понял, что вы выгружаете данные в XML при помощи какого-то модуля.
Тогда там и надо вставлять аппроксимацию. Алгоритм аппроксимации не такой уж и сложный (наверняка у вас есть).
Зачем понижать точность в исходном материале (ИнГео)?
В модуле нет апроксимации. Он предполагает что исходная информация из ИнГЕО - полигоны, с границей состоящей только из прямых отрезков.
Это только один пример.
Аппроксимация могла бы быть как в интерактивном режиме доступна рядовому пользователя, так и в API. Любой вариант интересен, а особенно оба.
Реализация уже есть в модули экспрота в формат MIF/MID.
Было бы чудесно обернуть её в интерфейс API.
Округление (понижение точности) - это было так, попутно. К данной теме отношения не имеет и уже имеет несколько решений.
Но всё-же маленькое пояснение:
Росреестр округляет координаты земельных участков. Надо признать что это очень важный информационный слой при работе с территорией. Формируя земельные участки приходится округлять координаты формируемых ЗУ и исходя из этого вычислять площадь.
Росреестр прописывает площадь ЗУ с дельтой (плюс, минус) и влияние округления на площадь не привысит эту погрешность, но Росррестр считает что эта дельта придумана не для нас: - "Что вам мешает указать достоверную площадь? Какое такое округление, что за детский лепет, сначала округляйте а уж потом вычисляйте площадь.".
Возможен ли ещё какой-то выход из данной ситуации, чтобы в ИнГЕО не понижать точность исходных данных и вычислять площадь на основании округлённых координат?
Конечто возможен, но для этого надо писать модуль или встраивать в ИнГЕО. Допустим в окне свойств объекта отражается площадь и периметр по точным координатам. Там много места чтобы отобразить ещё и аналогичные параметры с учётом округления. Разрядность округления можно вынести в общие настройки.
"Реализация уже есть в модули экспрота в формат MIF/MID."
Она не совсем корректна. Это проявляется в следующем, если есть два соседних объекта с общей дугой, то при экспорте одна и таже дуга в разных объектах пароксимируется по разному и в итоге узлы на результирующих объектах не совпадают. Видимо зависит от направления объекта.
Добавлен модуль операции с контурами, в котором содержится указанная функция аппроксимации дуг.
Добавлен модуль операций над контурами, в котором содержится указанная функция аппроксимации дуг.
Customer support service by UserEcho
Добавлен модуль операций над контурами, в котором содержится указанная функция аппроксимации дуг.
Ссылка: http://www.integro.ru/forum/viewtopic.php?t=1328