Интерфейс приблизительно такой:
- Код: Выделить всё
ISimpleTileProcessor = interface
procedure ProcessTile(APos: Tpoint; Azoom: byte; ALonLatRect: TDoubleRect; ATileSize: Cardinal; ATileBuf: Pointer);
end;
IExportSimpleToFile = interface
function GetSupportedContentTypes: WideString;
function GetFileFilters: WideString;
function GetFileExtDefault: WideString;
function StartExport(ASourceContentType: WideString; AFileName: WideString): ISimpleTileProcessor;
end;
Тоесть SAS.Планета сама будет перебирать тайлы по выделению, и скармливать плагину, порядок и наличие всех тайлов не гарантируется.
PS: Добавил работу с типом содержимого тайлов.
Функция GetSupportedContentTypes возвращает список поддерживаемых плагинов типов исходных данных приблизительно в таком виде:
"image/jpeg"; "image/png"; "image/gif"; "application/vnd.google-earth.kml+xml"
Если возвращается пустая строка, значит плагин ничего не поддерживает и в списке ни для одного из источников показываться не будет.
Функция StartExport получает тип данных экспортируемого пользователем источника.
PPS: Добавил методы для получения инфы для диалога открытия файла.
GetFileExtDefault - должен возвращать расширение файла по-умолчанию.
GetFileFilters - строка с поддерживаемыми фильтрами для имен файлов. Что-то такое:
SuperIndex (*.inx)|*.inx|All files (*.*)|*.*