Разработка драйверов источников данных

Разработка собственных драйверов источников данных

Драйверы представляют собой часть менеджера ресурсов, отвечающих за работу с файлами определённых форматов.

Данная страница содержит:

Описание доступных драйверов
Особенности сборки драйверов
Особенности проектирования драйверов

Описание доступных драйверов

s57-local
драйвер для работы с локальными электронными картами формата S-57;
sxf-local
драйвер для работы с локальными векторными картами формата SXF;
mtw-local
драйвер для работы с локальными растровыми картами формата MTW;
shp-local
драйвер для работы с локальными векторными картами формата Shapefile;
geotiff-local
драйвер для работы с локальными растровыми картами формата GeoTIFF;
jpeg2000-local
драйвер для работы с локальными растровыми картами формата JPEG2000;
dted-local
драйвер для работы с локальными растровыми картами формата DTED;
png-local
драйвер для работы с локальными растровыми картами формата PNG;
rsw-local
драйвер для работы с локальными растровыми картами формата RSW;
uks-server
драйвер для работы с сервером UKS;
kks-server
драйвер для работы с сервером KKS.

Особенности сборки драйверов


Warning: Для сборки драйверов требуются приватные заголовочные файлы.

Особенности проектирования драйверов

В таблице представлено описание вышеуказанных полей структуры driver_functions:

Наименование сущности Описание
.connect Подключиться к серверу.
.get_connection_state Получение статуса соединения с сервером.
.get_info Получить путь до папки, содержащей кэш карт.
.get_maps Загрузить карты с удаленного картосервера.
.reset_cache Очистить источники и перекэшировать данные.
.synchronize_cache Синхронизировать папки источника и внутреннего формата GCM. (Добавить недостающие карты и удалить те, источников которых не обнаружено.)
.update_map_cache Перегенерировать карту во внутренний формат.

В таблице представлено описание вышеуказанных полей структуры driver_ctx:

Наименование сущности Описание
.prefix Префикс драйвера для вывода отладочной информации.
.origin_maps_dirname Имя директории в каталоге $(GIS_ROOT)/data/maps/cache где хранятся исходные файлы карт.
.origin_extension Расширение оригинального файла карты.
.mapstyle_dirname Имя директории хранения классификаторов/картостилей.
.driver_gcm_extension Расширение файла после конвертации во внутренний формат.
.acronym Акроним драйвера.
.id Числовой идентификатор драйвера.
.initialized Флаг проверки инициализации драйвера.
.state Флаг проверки установки соединения с ядром.

Прототипы функций:

int mtw_local_convert_map( gis_core_map_information_t *map_info );
int mtw_local_connect( void );
int mtw_local_reset_file_cache( gis_core_user_data_t *udata );
int mtw_local_synchronize_file_cache( gis_core_user_data_t *udata );
int mtw_local_update_file_cache( int32_t map_id , gis_core_user_data_t *udata );
int mtw_local_get_info( gis_core_driver_info_t *info );
gis_core_connection_state_t mtw_local_get_connection_state( void );


Note: Идентификация драйвера приложениями gis-monitor и gis-control осуществляется при помощи driver_id. Для каждого драйвера он задаётся макросом DRIVER_ID, значения которого можно посмотреть на странице перечисления gis_core_driver_id_t в описании API. При необходимости использования пользовательского драйвера следует заменить любой из имеющихся драйверов пользовательским, с сохранением DRIVER_ID заменяемого драйвера. При этом следует изменить акроним драйвера (макрос DRIVER_ACRONYM) для корректной его идентификации в приложениях.




Предыдущий раздел: Руководство разработчика