Цитата |
---|
mihalych72 написал: делать отдельный TMapGisServer для нового TMapScreen? |
Не понял вопроса. Если уже есть в приложении TMapGisServer, можно использовать его.
TMapGisServer может подключаться к нескольким разным ГИС Серверам.
Цитата |
---|
mihalych72 написал: а как сделать подобное для удаленного гис-сервера |
не важно, откуда открывается карта
Остальной части вопроса тоже не понял.
Надо получить фрагмент карты в виде изображения.
Что за объект TGTK_MapFrameRect?
Судя по всему, его назначение - сделать скриншот заданной области. Видимо, с экранным разрешением.
Есть масса встроенных функций ГИС-ядра, позволяющих выгрузить изображение указанного фрагмента карты в заданном разрешении и масштабе.
Например, cохранить в файл:
Скрытый текст |
---|
Цитата |
---|
// Сохранить карту в формате BMP, JPEG, PNG // hmap - идентификатор открытых данных // handle - диалог сопровождения процесса обработки; // filename - имя файла сохраняемого изображения RSW // dframe - фрагмент сохраняемой карты(в метрах на местности) // bitcount - количество бит на пиксель сохраняемого изображения // meterInElement - размер пикселя сохраняемого изображения в метрах // resolutionMet - разрешающая способность сохраняемого изображения (точек на метр) // flagCompress - При сохранении файла TIFF - Флаг сжатия изображения // (0- не применять сжатие, 1 - сжатие PackBit) // При сохранении файла JPG - Коэффициент качества // изображения при сжатии JPEG (0-100) // При ошибке функция возвращает ноль // // Диалогу визуального сопровождения процесса обработки посылаются // сообщения: // - (WM_PROGRESSBAR) Извещение об изменении состония процесса // WPARAM - текущее состоние процесса в процентах (0% - 100%) // Если функция-отклик возвращает WM_PROGRESSBAR, то процесс завершается. // // - (WM_ERROR) Извещение об ошибке // LPARAM - указатель на структуру ERRORINFORMATION // Структура ERRORINFORMATION описана в picexprm.h, // WM_PROGRESSBAR и WM_ERROR - в maptype.h
function LoadDocumentImageToPictureFile(aMap: HMAP; handle : HMESSAGE; const filename : PWChar;var dframe : TDFRAME; bitCount: integer;meterInElement: double; flagCompress : integer) : integer; stdcall external sGISPICEX;
function LoadDocumentImageToPictureFileEx(aMap: HMAP; handle : HMESSAGE; const filename : PWChar;var dframe : TDFRAME; bitCount: integer;meterInElement: double; flagCompress : integer) : integer; stdcall external sGISPICEX;
// Сохранить карту в формате TIFF // hmap - идентификатор открытых данных // handle - диалог сопровождения процесса обработки; // filename - имя файла сохраняемого изображения RSW // dframe - фрагмент сохраняемой карты(в метрах на местности) // bitcount - количество бит на пиксель сохраняемого изображения // meterInElement - размер пикселя сохраняемого изображения в метрах // flagCompress - При сохранении файла TIFF - Флаг сжатия изображения // (0- не применять сжатие, 1 - сжатие PackBit) // При сохранении файла JPG - Коэффициент качества // изображения при сжатии JPEG (0-100) // flagIntergraphTIFF - Флаг записи матрицы трансформирования для // использования в программе Intergraph // При ошибке функция возвращает ноль // // Диалогу визуального сопровождения процесса обработки посылаются // сообщения: // - (WM_PROGRESSBAR) Извещение об изменении состония процесса // WPARAM - текущее состоние процесса в процентах (0% - 100%) // Если функция-отклик возвращает WM_PROGRESSBAR, то процесс завершается. // // - (WM_ERROR) Извещение об ошибке // LPARAM - указатель на структуру ERRORINFORMATION // Структура ERRORINFORMATION описана в picexprm.h, // WM_PROGRESSBAR и WM_ERROR - в maptype.h
function LoadDocumentImageToTiffFile(aMap: HMAP; handle : HMESSAGE; const filename : PWChar;var dframe : TDFRAME; bitCount: integer;meterInElement: double; flagCompress,flagIntergraphTIFF : integer) : integer; stdcall external sGISPICEX; |
|
или выполнить отрисовку на устройство (в том числе в файл):
Скрытый текст |
---|
Цитата |
---|
// Отобразить фрагмент карты на заданном устройстве // в текущих масштабе и составе объектов // Функция mapPaintDoc печатает карту и список врезок без необходимости // дополнительного вызова mapPaintInset // amap - идентификатор открытых данных // dc - идентификатор контекста устройства вывода; // erase - признак стирания фона перед выводом; // (0 - фон не стирать; !=0 - очистить фрагмент цветом фона; // для экранного способа вывода (VT_SCREEN) всегда стирает // цветом фона; кроме значения -2 (минус 2)) // rect - координаты фрагмента карты (Draw) в изображении (Picture) // Корректно работает с большими изображениями под Windows95 и NT; // но требует перед вызовом установки // ::SetViewportOrgEx(hDC; dx ; dy; 0); // где dx;dy - положение отображаемого фрагмента в клиентной // области ! // Размер картинки; рисуемой за один вызов; не более // текущих размеров экрана! Иначе - см. PaintToDib;PaintToImage... // alpha - флаг использования альфа канала 0 - не использовать 1 - использовать // filename - полное имя создаваемого файла формата png // alpha - флаг использования альфа канала 0 - не использовать 1 - использовать // Если image != 0 и object != 0 дополнительно вызвается фукция // mapPaintMapObject95Ex (Отобразить произвольный объект в пределах фрагмента // в условных знаках пользователя) // image - описание вида объекта (см. MAPGDI.H), // obj - идентификатор объекта
function mapPaintDocEx(amap : HMap; DC:HDC; erase: integer; var Rect : TRect; alpha: integer): integer; stdcall external sGisAcces; function mapPaintDoc(amap : HMap; DC:HDC; erase: integer; var Rect : TRect; alpha: integer): integer; stdcall external sGisAcces; function mapPaintDocToXImageEx(amap : HMap; imagedesc:PXIMAGEDESC; erase: integer; x,y : integer; var Rect : TRect; alpha: integer): integer; stdcall external sGisAcces;
function mapPaint95Pro(amap : HMap;DC:HDC; erase: integer; var Rect : TRect; alpha: integer;aPaint : HPAINT): integer; stdcall external sGisAcces;
function mapPaint95ToFileUn(amap : HMAP; const filename : PWCHAR; erase : integer; var rect : TRECT; alpha : integer; image : PPAINTPARM; obj : HOBJ) : integer; stdcall external sGisAcces; |
|