Здравствуйте! Вопрос по функции picexLoadGdalFileToRsw. Я пытаюсь с помощью нее получить файл растра rsw из файла изображения png. Предаю в нее: double meterInPixelX = 10000; double meterInPixelY = 10000; DOUBLEPOINT SWpoint; SWpoint.X = 5.1521e+06; SWpoint.Y = 6.81197e+06;
picexLoadGdalFileToRswUn(0, 0,imgName,rstName,&meterInPixelX, &meterInPixelY,&SWpoint,0,0,0); Функция возвращает не 0.
Файл растра формируется, но параметры привязки (meterInPixelX, meterInPixelY,SWpoint) игнорируются. Т.е. вне зависимости от того, что будет в параметрах meterInPixelX, meterInPixelY, SWpoint, растр всегда одинаковый. Так должно быть?
Дмитрий Т написал: Здравствуйте! Вопрос по функции picexLoadGdalFileToRsw. Я пытаюсь с помощью нее получить файл растра rsw из файла изображения png. Предаю в нее: double meterInPixelX = 10000; double meterInPixelY = 10000; DOUBLEPOINT SWpoint; SWpoint.X = 5.1521e+06; SWpoint.Y = 6.81197e+06;
picexLoadGdalFileToRswUn(0, 0,imgName,rstName,&meterInPixelX, &meterInPixelY,&SWpoint,0,0,0); Функция возвращает не 0.
Файл растра формируется, но параметры привязки (meterInPixelX, meterInPixelY,SWpoint) игнорируются. Т.е. вне зависимости от того, что будет в параметрах meterInPixelX, meterInPixelY, SWpoint, растр всегда одинаковый. Так должно быть?
Здравствуйте!
Для передачи привязки и размеров элемента в выходной файл RSW вместо picexLoadGdalFileToRswUn предлагаю воспользоваться функцией picexLoadGdalFileToRswExUn.
Код
_PICIMP long int _PICAPI picexLoadGdalFileToRswExUn(HMESSAGE handle, TASKPARM* parm,
const WCHAR * inputname,
const WCHAR * rstname,
double* meterInPixelX,
double* meterInPixelY,
DOUBLEPOINT *point,
long int compression,
long int flagMessage,
long int flagWorkLog,
long int flagIgnoreGeoTiff);
Доступ к исходному графическому файлу в Функциях picexLoadGdalFileToRswUn и picexLoadGdalFileToRswExUn осуществляется при помощи методов библиотеки GDAL. Внутри графических файлов, или в текстовых файлах настройки, находящихся рядом, могут содержаться привязка, размеры элемента и параметры системы координат. В функции picexLoadGdalFileToRswExUn добавлен дополнительный параметр flagIgnoreGeoTiff. Параметр flagIgnoreGeoTiff предназначен для игнорирования параметров привязки, размеров элемента и системы координат, определенных библиотекой GDAL. При вызове функции picexLoadGdalFileToRswExUn в качестве параметра flagIgnoreGeoTiff передайте 1. В этом случае параметры привязки будут браться из входных параметров функции: double* meterInPixelX, double* meterInPixelY, DOUBLEPOINT *point.
Возможен другой вариант передачи параметров привязки в выходной растр RSW. После импорта графического файла и получения растра RSW воспользуйтесь функциями:
Код
// Установить привязку растра в районе работ(в метрах)
// hMap - идентификатор открытых данных
// number - номер файла в цепочке
// location - координаты юго-западного угла растра(в метрах)
// При ошибке возвращает 0
_MAPIMP long int _MAPAPI mapSetRstLocation(HMAP hMap, long int number, DOUBLEPOINT *location);
// Установка параметров растра
// hMap - идентификатор открытых данных
// scale - знаменатель масштаба
// precision - разрешение (точек на метр)
// meterinelementX - количества метров на элемент ПО ОСИ X
// meterinelementY - количества метров на элемент ПО ОСИ Y
// meterinelementX и meterinelementY могут отличаться
// Важно!!!
// Для правильного отображения растров в 10-ой и более ранних версиях необходимо:
// meterinelementX = scale / precision;
// Если условие не выполняется, то meterinelementX и meterinelementY игнорируются и рассчитываются по формуле.
_MAPIMP long int _MAPAPI mapSetRstParameters(HMAP hMap, long int number,
double scale, double precision,
double meterinelementX,
double meterinelementY);