03.09.2010

Специалисты компаии ГКР исключили ошибку Microsoft


SQL Server 2008 хранит координаты в числах двойной точности (стандарт IEEE) в восьмибайтовом формате.
Это верно и для других производителей пространственных баз данных (Oracle, ESRI и др.) Тем не менее, операции в SQL Server 2008 выполняются с использованием точности 27 бит.

Эта сетка невысокого разрешения влечет за собой потерю точности пространственных операций. Некоторые вершины геометрических объектов, участвующих в пространственной операции смещаются.
Как следствие, результат операций содержит искажения координат и топологии: коллапс и исчезновение узких перешейков, появляются несуществующие перекрытия, дыры, небольшие "осколки" и т.д.

Алгоритмы обработки пространственных данных, реализованные в MapAround, позволяют, в большинстве случаев, использовать числа двойной точности для всех промежуточных вычислений.

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

https://connect.microsoft.com/SQLServer/feedback/details/580254/spatial-operations-are-done-with-a-low-precision-causing-troubles-in-the-returned-data#details

Возврат к списку