Преобразование пиксельных координат точки окна отображения в метрические координаты с сохранением дробной части.
#include <gis/gis_surfacemanager.h>int gis_render_sm_convert_fpx2meters( gis_render_sm_context_t sm_ctx, double_point_t fpx_pos, double_point_t *meters_pos );
surfacemanager
Функция преобразует пиксельные координаты точки с сохранением дробной части в метрические координаты
QApplication app(argc, argv);gis_core_connection_t connection;gis_core_request_parameters_t map;gis_data_engine_context_t data_engine_ctx;gis_render_sm_context_t sm_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_engine_alloc( 800, 600, GIS_DATA_ENGINE_MODE_SM, GIS_DATA_ENGINE_BPP_32, &connection, &data_engine_ctx );gis_render_sm_alloc( &sm_ctx, data_engine_ctx, 1000, 0.5, 0 );double_point_t px_pnt;px_pnt.x = 100;px_pnt.y = 140;double_point_t meter_point;gis_render_sm_convert_fpx2meters( sm_ctx, px_pnt, &meter_point );if ( fabs( meter_point.x - 4437896.819231 ) < 0.1 &&fabs( meter_point.y - 5392447.959814 ) < 0.1 ){printf( "Correct\n" );}else{printf( "Incorrect meters coords: %lf %lf\n", meter_point.x, meter_point.y );gis_render_sm_free( &sm_ctx );gis_data_engine_free( &data_engine_ctx );gis_core_databuffer_detach();gis_core_link_destroy( &connection, true );return 1;}gis_render_sm_free( &sm_ctx );gis_data_engine_free( &data_engine_ctx );gis_core_databuffer_detach();gis_core_link_destroy( &connection, true );
ПК ЦКИ для ЗОСРВ «Нейтрино»
gis_render_sm_context_t, gis_render_sm_convert_degree2px()
Предыдущий раздел: Описание API картографического фреймворка