//--------------------------------------------------------- bool CData_Source_PgSQL::Source_Create(const wxTreeItemId &Item) { CData_Source_PgSQL_Data *pData = Item.IsOk() ? (CData_Source_PgSQL_Data *)GetItemData(Item) : NULL; if( pData == NULL ) return( false ); if( pData->Get_Type() == TYPE_ROOT || pData->Get_Type() == TYPE_SERVER ) { CSG_Module *pModule = SG_Get_Module_Library_Manager().Get_Module("db_pgsql", DB_PGSQL_DB_Create); if( pModule && pModule->On_Before_Execution() ) { if( pData->Get_Type() == TYPE_SERVER ) { pModule->Set_Parameter("PG_HOST", pData->Get_Host()); pModule->Set_Parameter("PG_PORT", pData->Get_Port()); } if( DLG_Parameters(pModule->Get_Parameters()) ) { pModule->Execute(); } } } return( true ); }
//--------------------------------------------------------- void CData_Source_PgSQL::Source_Open(const wxTreeItemId &Item) { CData_Source_PgSQL_Data *pData = Item.IsOk() ? (CData_Source_PgSQL_Data *)GetItemData(Item) : NULL; if( pData == NULL ) return; if( pData->Get_Type() == TYPE_ROOT || pData->Get_Type() == TYPE_SERVER ) { CSG_Module *pModule = SG_Get_Module_Library_Manager().Get_Module("db_pgsql", DB_PGSQL_Get_Connection); // CGet_Connection if( pModule && pModule->On_Before_Execution() ) { if( pData->Get_Type() == TYPE_SERVER ) { pModule->Set_Parameter("PG_HOST", pData->Get_Host()); pModule->Set_Parameter("PG_PORT", pData->Get_Port()); } if( DLG_Parameters(pModule->Get_Parameters()) ) { pModule->Execute(); } } } else if( pData->is_Connected() ) { Update_Source(Item); } else if( !Source_Open(pData, true) ) { DLG_Message_Show_Error(_TL("Could not connect to data source."), _TL("Connect to PostgreSQL")); } }
//--------------------------------------------------------- CSG_Grid * CLandsat_Import::Get_Projection(CSG_Grid *pGrid, const CSG_String &Proj4) { if( pGrid->Get_Projection().is_Okay() == false ) { return( NULL ); } CSG_Module *pModule = SG_Get_Module_Library_Manager().Get_Module(SG_T("pj_proj4"), 4); // Coordinate Transformation (Grid) if( pModule == NULL ) { return( NULL ); } int Interpolation; switch( Parameters("INTERPOLATION")->asInt() ) { case 0: Interpolation = GRID_INTERPOLATION_NearestNeighbour; break; case 1: Interpolation = GRID_INTERPOLATION_Bilinear ; break; default: Interpolation = GRID_INTERPOLATION_BSpline ; break; } Message_Add(CSG_String::Format(SG_T("\n%s (%s: %s)\n"), _TL("re-projection to geographic coordinates"), _TL("original"), pGrid->Get_Projection().Get_Name().c_str()), false); pModule->Settings_Push(NULL); if( pModule->Set_Parameter("CRS_PROJ4" , Proj4 ) && pModule->Set_Parameter("INTERPOLATION", Interpolation) && pModule->Set_Parameter("SOURCE" , pGrid ) && pModule->Execute() ) { pGrid = pModule->Get_Parameters("TARGET")->Get_Parameter("GRID")->asGrid(); pModule->Settings_Pop(); return( pGrid ); } pModule->Settings_Pop(); Message_Add(CSG_String::Format(SG_T("\n%s: %s\n"), _TL("re-projection"), _TL("failed")), false); return( NULL ); }
//--------------------------------------------------------- bool PGSQL_Save_Shapes (CSG_Shapes *pShapes) { CSG_Module *pModule = SG_Get_Module_Library_Manager().Get_Module("db_pgsql", DB_PGSQL_Shapes_Save); if( pModule && pModule->On_Before_Execution() && pModule->Set_Parameter("SHAPES", pShapes) && DLG_Parameters(pModule->Get_Parameters()) && pModule->Execute() ) { return( true ); } return( false ); }
//--------------------------------------------------------- bool PGSQL_Save_Grid (CSG_Grid *pGrid) { CSG_Module *pModule = SG_Get_Module_Library_Manager().Get_Module("db_pgsql", DB_PGSQL_Raster_Save); if( pModule && pModule->On_Before_Execution() && pModule->Set_Parameter("NAME", pGrid->Get_Name()) ) { pModule->Get_Parameters()->Get_Parameter("GRIDS")->asList()->Del_Items(); if( pModule->Get_Parameters()->Get_Parameter("GRIDS")->asList()->Add_Item(pGrid) && DLG_Parameters(pModule->Get_Parameters()) && pModule->Execute() ) { return( true ); } } return( false ); }