gis_data_raw_select_map()

Выбор требуемой карты в разделяемой области памяти.

Прототип:

#include <gis/gis_raw.h>
int gis_data_raw_select_map( gis_data_raw_context_t ctx,
gis_core_driver_id_t driver_id,
int32_t map_id );

Аргументы:

ctx
Контекст gis_data_raw_context_t.
driver_id
Идентификатор драйвера требуемой карты ( gis_core_driver_id_t).
map_id
Индекс карты в рамках выбранного драйвера.

Библиотека:

gishelper

Описание:

Функция выбирает карту с переданным порядковым номером (индексом) map_id, которая принадлежит указанному идентификатору драйвера driver_id. Все карты в рамках одного драйвера имеют уникальный численный идентификатор. Таким образом, указав связку driver_id и map_id можно однозначно определить конкретную карту. Для получения списка карт заданного драйвера можно воспользоваться функцией gis_core_request_maps_list(). Функция вернет gis_core_map_list_t, пройдя по которому в цикле можно получить идентификатор интересующей карты, и затем передать этот идентификатор в gis_data_raw_select_map() для низкоуровневой работы с данными карты.

Возвращаемое значение:

EOK
Успешное завершение.
EFAULT
Некорректный идентификатор драйвера.
EINVAL
Некорректный индекс карты.
EBADFD
Некорректное обращение к разделяемой области памяти.
ENODATA
Отсутствуеют карты в разделяемой области памяти.

Примеры использования:

gis_core_connection_t connection;
gis_core_request_parameters_t params;
gis_data_raw_context_t raw_ctx;
gis_core_link_init( &connection );
gis_core_link_connect( &connection, 777 );
gis_core_databuffer_attach( &connection );
gis_core_request_parameters_init( &params );
gis_core_databuffer_data_request( &connection, &params, 1 );
gis_data_raw_ctx_alloc( &raw_ctx );
gis_data_raw_ctx_import_databuffer( raw_ctx );
gis_core_map_list_t map_list;
gis_core_map_list_init( &map_list );
gis_core_request_maps_list( &connection, &params, GIS_CORE_DRIVERS_SXF_LOCAL, &map_list );
gis_data_raw_select_map( raw_ctx, GIS_CORE_DRIVERS_SXF_LOCAL, map_list.entry_list[0].id );
int count_obj = gis_data_raw_map_get_object_count( raw_ctx );
if ( count_obj != 8589 )
{
printf( "Incorrect number of objects: %d\n", count_obj );
gis_data_raw_ctx_free( &raw_ctx );
gis_core_map_list_free( &map_list );
gis_core_databuffer_detach();
gis_core_link_destroy( &connection, true );
return 1;
}
gis_data_raw_ctx_free( &raw_ctx );
gis_core_map_list_free( &map_list );
gis_core_databuffer_detach();
gis_core_link_destroy( &connection, true );

Классификация:

ПК ЦКИ для ЗОСРВ «Нейтрино»

Безопасность использования
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Поддерживается, начиная с ПК ЦКИ редакции 1.1.0

Тематические ссылки:

gis_data_raw_context_t, gis_data_raw_select_first_map(), gis_data_raw_select_next_map()




Предыдущий раздел: Описание API картографического фреймворка