Получение массива точек выбранного объекта текущей карты.
#include <gis/gis_raw.h>object_point_t * gis_data_raw_object_get_data( gis_data_raw_context_t ctx );
gishelper
Функция возвращает указатель на массив точек выбранного объекта текущей карты.
gis_core_connection_t connection;gis_core_request_parameters_t map;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( &map );gis_core_databuffer_data_request( &connection, &map, 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, &map, 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 );gis_data_raw_map_select_first_object( raw_ctx );object_point_t *points = gis_data_raw_object_get_data( raw_ctx );if ( fabs( points->degrees.x - 39.015295 ) < 0.0001 &&fabs( points->degrees.y - 43.333212 ) < 0.0001 &&fabs( points->meters.x - 7501351.669930 ) < 0.0001 &&fabs( points->meters.y - 4799838.621442 ) < 0.0001 ){printf( "Correct\n" );}else{printf( "Incorrect data values\n" );printf( " degrees.x = %f degrees.y = %f\n meters.x = %f meters.y = %f\n",points->degrees.x, points->degrees.y, points->meters.x, points->meters.y );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 );
ПК ЦКИ для ЗОСРВ «Нейтрино»
gis_data_raw_context_t, gis_data_raw_object_get_point_count()
Предыдущий раздел: Описание API картографического фреймворка