Объявление функции picexLoadTiffToRstAndCompressEx из файла mappicex.h:
Код |
---|
//========================================================================
// Загрузка растровой карты из Tiff(GeoTiff) в RSW
// Handle - диалог визуального сопровождения процесса обработки.
// TiffName - имя Tiff-файла;
// RstName - имя Rst-файла;
// meterInElementX - размер в метрах элемента по X
// meterInElementY - размер в метрах элемента по Y
// point - точка привязки растра (в метрах)
// (положение юго-западного угла растра в районе)
// compression - флаг использования сжатия при формировании RST-файла (0/1)
// 0 - сжатие к блокам изображения применяться не будет
// 1 - блоки д.б. сжаты по методу LZW
// 2 - блоки д.б. сжаты по методу JPEG (справедливо для 24 битных растров)
// flagIgnoreGeoTiff - (0/1) флаг игнорирования GeoTiff тегов
// При ошибке возвращает ноль
//
// Диалогу визуального сопровождения процесса обработки посылаются
// сообщения:
// - (WM_PROGRESSBAR) Извещение об изменении состония процесса
// WPARAM - текущее состоние процесса в процентах (0% - 100%)
// Если функция-отклик возвращает WM_PROGRESSBAR, то процесс завершается.
//
// - (WM_ERROR) Извещение об ошибке
// LPARAM - указатель на структуру ERRORINFORMATION
// Структура ERRORINFORMATION описана в picexprm.h,
// WM_PROGRESSBAR и WM_ERROR - в maptype.h
//========================================================================
long int _MAPAPI picexLoadTiffToRstAndCompressEx(HMESSAGE handle,
const char * TiffName,
const char * RstName,
double* meterInPixelX, double* meterInPixelY,
DOUBLEPOINT *point,
int compression,
int flagIgnoreGeoTiff);
long int _MAPAPI picexLoadTiffToRstAndCompressExUn(HMESSAGE handle,
const WCHAR * TiffName,
const WCHAR * RstName,
double* meterInPixelX, double* meterInPixelY,
DOUBLEPOINT *point,
int compression,
int flagIgnoreGeoTiff); |
flagIgnoreGeoTiff - (0/1) флаг игнорирования GeoTiff тегов, отвечающих за параметры проекции и системы координат.
В качестве аргумента функции point необходимо передавать указатель на привязку изображения, которая размещается в структуре DOUBLEPOINT.
Цитата |
---|
Попытка передать NULL привела к Access Violation. |
Добавил контроль для аргумента функции point.
Для запроса параметров изображения файла GeoTIFF предназначены функции:
Код |
---|
//========================================================================
// Запросить параметры GeoTIFF-файла
// Map - карта,содержащая векторные данные;
// TifName - имя GeoTIF-файла;
// DataInformation - структура, которую необходимо заполнить
// geoTIFFinformation - структура, которую необходимо заполнить
// Структуры DATAINFORMATION и GEOTIFFINFORMATION описаны в picexprm.h
//
// Функцию LoadGeoTifInformation рекомендуется вызывать перед началом
// конвертации TIFF-файла в Rsw для инициализации диалога сопровождения
//========================================================================
long int _MAPAPI LoadGeoTifInformation(HMESSAGE Handle, const char * TiffName,
DATAINFORMATION * information,
GEOTIFFINFORMATION* geoTIFFinformation);
long int _MAPAPI LoadGeoTifInformationUn(HMESSAGE Handle, const WCHAR * TiffName,
DATAINFORMATION * information,
GEOTIFFINFORMATION* geoTIFFinformation);
//========================================================================
// Запросить параметры СК из файла GeoTiff
// Handle - диалог визуального сопровождения процесса обработки.
// TifName - имя TIF-файла;
// geoTIFFparam - указатель на структуру GEOTIFFPARAM для записи
параметров СК
//========================================================================
long int _MAPAPI LoadGeoTiffParameters(HMESSAGE Handle, const char * TiffName,
GEOTIFFPARAM * geoTIFFparam);
long int _MAPAPI LoadGeoTiffParametersUn(HMESSAGE Handle, const WCHAR * TiffName,
GEOTIFFPARAM * geoTIFFparam); |
По запрошенным параметрам определяются размеры элемента(пикселя) растра и вычисляется привязка изображения для функции picexLoadTiffToRstAndCompressEx.
В сложных случаях вычисляются параметры трансформирования изображения, которое запускается после перегона изображения в RSW.