Цитата:
И снова округление !!! А с физическими координатами будут отличия.
Вот как раз перемещение точек и вызывает реальное изменение физических координат объекта. Корень проблемы лежит в непонимании авторов ИН4 формата простых математических принципов.
Есть измеренные величины, измерения которых производятся приборами с ограниченной точностью. При этом разряды числа, выходящие за границу точности в самом деле не значащие и могут быть отброшены. Следовательно, ограничение точности до см в координатах я считаю оправданным.
Есть величины расчетные. Здесь ограничение точности настолько незначительно, что им можно пренебречь. Речь о компьютерных программах, типа Digitals
. Это уже ограничение разрядности используемого вещественного типа. 19 значащих разрядов, этого должно хватить
. И я не согласен с необходимостью принудительного округления расчетных величин. Особенно, когда требуется свести некий баланс. Округлять площади угодий по-отдельности, суммировать их, сравнивать с площадью участка и удивляться почему не бьет. И я уверен, что остались еще люди, которые не устают удивляться
Мол, программа неправильно считает.
Недавно нам даже привозили системный блок, который неверно сохраняет в ИН4. Продемонстрировали, что после сохранения в ИН4 с точностью координат 2 знака после точки, координаты смещаются на миллиметры относительно исходного DMF файла. В DMF координаты хранились с макс. точностью. А вы тут о невязках рассуждаете...
Надеюсь, в новом стандарте обмена кадастровой информацией эти "магические" вещи предусмотрят. А пока с ошибками округления надо бороться более хитрым округлением. Мне кажется это самый верный подход. Двигая точки мы подбираем голову, для которой шапка будет в самый раз, а не шапку по размеру головы.
Однако накопительное округление не будет работать когда объект один. Получается, что для угодия, скопированного и вставленного в пустую карту, будет отображаться уже другая площадь. Это не есть хорошо. Мне кажется лучше положиться на статистику, как уже предлагалось выше. Но решать о способе округления значения площади без привлечения значений площадей других объектов.
Например, по такой методике. Если округляем до 4-х знаков, а 5-й знак =5, то смотрим на значение 3-го знака, если оно четное округляем в большую сторону, иначе в меньшую. Кажется этот способ округления называется банковским или бухгалтерским. Он конечно не даст такого точного баланса как накопительное округление, но все таки снизит накопление ошибки. Особенно для случаев с большим набором значений и случайным распределением четных/нечетных цифр в разрядах.
А еще лучше дать возможность пользователю выбирать какой способ округления использовать. Не зря в Excel'e так много разных формул для такой простой задачи. Задавать способ округления можно в маске параметра. Например, для площади в маске будет написано /10000 0.0000 RoundMethod=Simple/Even/Exact, или что-то вроде.