Обычное использование 2D и 3D аффинных преобразований в ГИС включает
Преобразование карты в отображение
Регистрация изображений и растров
Изменение 3D-точек обзора
Изменение функций путем изменения масштаба, сдвига и поворота
Изменения базовых данных (3-точечные и 7-точечные формулы).
Они описаны более подробно и проиллюстрированы для 2D-случая на этой веб-странице , которая обнаруживается при поиске «ГИС аффинного преобразования». Другие хиты дают еще много примеров.
Аффинные преобразования также обеспечивают некоторые концептуальные упрощения . Например, каждая регулярная сетка местоположений аффинно эквивалентна сетке точек с интегральными координатами, а все эллипсоидальные модели Земли аффинно эквивалентны единичной сфере с центром в начале координат.
Наконец, отметим, что ( по крайней мере, с конца 1800-х годов ) евклидова геометрия является изучением группы аффинных преобразований, сохраняющих расстояние. Поскольку почти вся обработка ГИС - пространственные индексы, пространственные отношения, пространственные запросы, «геообработка» и т. Д. - использует алгоритмы, основанные на евклидовой геометрии карты, аффинные преобразования являются основополагающими для ГИС.
Из документа PostGIS :
«ST_Affine - применяет трехмерное аффинное преобразование к геометрии для выполнения таких операций, как перевод, вращение, масштабирование за один шаг».
Вот довольно грязный пример.
Два года назад я использовал его для создания html-карты изображений с возможностью нажатия на изображение, полученное с mapserver. Запрос, отправляемый в PostGIS, создает упрощенный буфер вокруг геометрии в правом пиксельном масштабе и пересчитывает, поскольку карта изображения имеет свое происхождение в верхнем левом углу, а проекция карты имеет свое происхождение, конечно, в нижнем левом углу. Затем я просто создал карту изображений, написав возвращаемую строку с помощью asp или, если это был php.
Я копался в грязной пыли и нашел это:
Не красиво, но на самом деле это работало очень хорошо и служило некоторое время.
/ Никлас
источник
Это просто линейное преобразование изображения или набора данных - это означает, что все координаты в наборе данных обрабатываются одинаково. Например, если точка в точке (x1, y1) масштабируется на a и сдвигается на b, то все остальные точки (x2, y2), (x3, y3), (xn, yn) также будут масштабироваться на a и сдвигаться на b и т. Д. ... Нет никакой зависимости от того, где в наборе данных или изображении находятся пиксели.
источник
Когда я получаю карту, которая представляет собой бумажное или цифровое изображение без доступа к векторным данным, и мне нужна информация с карты для наложения на другие данные. Если карта не распечатывается и не экспортируется в той же или аналогичной системе координат, что и мои данные, тогда мне нужно не только зарегистрироваться (разместить, повернуть, масштабировать). Но чтобы преобразовать это.
Это можно сделать двумя способами.
1. оцифруйте в системе изображение, в котором было напечатано, затем назначьте соответствующую систему координат и затем заново спроецируйте данные. Или ...
2. поместите, поверните и масштабируйте до положения, близкого к конечному, и выполните преобразование.
При выборе типа преобразования вы ограничены количеством идентифицируемых опорных точек в обоих наборах данных.
Обычно (в зависимости от множества факторов) я выбираю расположение изображения рядом с местом его окончательного упокоения, а затем выполняю преобразование с резиновым листом.
Affine - это один из вариантов, который я имею, когда использую большее количество контрольных точек.
источник