Здравствуйте!
Вопрос по функции 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, растр всегда одинаковый. Так должно быть?
[/QUOTE]
Здравствуйте!
Для передачи привязки и размеров элемента в выходной файл RSW вместо picexLoadGdalFileToRswUn предлагаю воспользоваться функцией picexLoadGdalFileToRswExUn.[CODE]_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);
[/CODE]Доступ к исходному графическому файлу в Функциях picexLoadGdalFileToRswUn и picexLoadGdalFileToRswExUn осуществляется при помощи методов библиотеки GDAL.
Внутри графических файлов, или в текстовых файлах настройки, находящихся рядом, могут содержаться привязка, размеры элемента и параметры системы координат.
В функции picexLoadGdalFileToRswExUn добавлен дополнительный параметр flagIgnoreGeoTiff.
Параметр flagIgnoreGeoTiff предназначен для игнорирования параметров привязки, размеров элемента и системы координат, определенных библиотекой GDAL.
При вызове функции picexLoadGdalFileToRswExUn в качестве параметра flagIgnoreGeoTiff передайте 1.
В этом случае параметры привязки будут браться из входных параметров функции:
double* meterInPixelX,
double* meterInPixelY,
DOUBLEPOINT *point.
Возможен другой вариант передачи параметров привязки в выходной растр RSW.
После импорта графического файла и получения растра RSW воспользуйтесь функциями:[CODE] // Установить привязку растра в районе работ(в метрах)
// 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);
[/CODE]