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

Разработка собственных драйверов источников данных на примере растрового формата BMP

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

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

Описание доступных драйверов
Особенности сборки драйверов
Особенности проектирования драйверов
Структуры и макросы
Структура gis_driver_ctx_t
Структура gis_driver_interface_t
Функции
Прототипы требуемых функций
Примеры реализации требуемых функций
Функция bmp_local_init
Функция bmp_local_convert_map
Функция bmp_local_connect
Функция bmp_local_get_connection_state
Функция bmp_local_get_info
Функция bmp_local_reset_file_cache
Функция bmp_local_synchronize_file_cache
Функция bmp_local_update_file_cache

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

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;

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

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


Warning: На данный момент протестировано добавление пользовательского драйвера только для растровых форматов, т.к. для них не требуется собственный конвертер (используется единый растровый).

Структуры и макросы

Структура gis_driver_ctx_t

Структура gis_driver_interface_t

Функции

Прототипы требуемых функций

int bmp_local_convert_map( gis_core_map_information_t *map_info );
int bmp_local_connect( void );
int bmp_local_reset_file_cache( gis_core_user_data_t *udata );
int bmp_local_synchronize_file_cache( gis_core_user_data_t *udata );
int bmp_local_update_file_cache( int32_t map_id , gis_core_user_data_t *udata );
int bmp_local_get_info( gis_core_driver_info_t *info );
gis_core_connection_state_t bmp_local_get_connection_state( void );

Примеры реализации требуемых функций

Функция bmp_local_init

Функция bmp_local_convert_map

Функция bmp_local_connect

Функция bmp_local_get_connection_state

Функция bmp_local_get_info

Функция bmp_local_reset_file_cache

Функция bmp_local_synchronize_file_cache

Функция bmp_local_update_file_cache




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