📄 mkcatalog.cpp
字号:
oModule.Dump( stdout ); oModule.Create( "out.000" );/* -------------------------------------------------------------------- *//* Create a record. *//* -------------------------------------------------------------------- */ DDFRecord *poRec = new DDFRecord( &oModule ); DDFField *poField; poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) ); poRec->SetFieldRaw( poField, 0, "\1\0\036", 3 ); poField = poRec->AddField( oModule.FindFieldDefn( "DSID" ) ); poRec->SetIntSubfield ( "DSID", 0, "RCNM", 0, 10 ); poRec->SetIntSubfield ( "DSID", 0, "RCID", 0, 1 ); poRec->SetIntSubfield ( "DSID", 0, "EXPP", 0, 1 ); poRec->SetIntSubfield ( "DSID", 0, "INTU", 0, 4 ); poRec->SetStringSubfield( "DSID", 0, "DSNM", 0, "GB4X0000.000" ); poRec->SetStringSubfield( "DSID", 0, "EDTN", 0, "2" ); poRec->SetStringSubfield( "DSID", 0, "UPDN", 0, "0" ); poRec->SetStringSubfield( "DSID", 0, "UADT", 0, "20010409" ); poRec->SetStringSubfield( "DSID", 0, "ISDT", 0, "20010409" ); poRec->SetFloatSubfield ( "DSID", 0, "STED", 0, 3.1 ); poRec->SetIntSubfield ( "DSID", 0, "PRSP", 0, 1 ); poRec->SetStringSubfield( "DSID", 0, "PSDN", 0, "" ); poRec->SetStringSubfield( "DSID", 0, "PRED", 0, "2.0" ); poRec->SetIntSubfield ( "DSID", 0, "PROF", 0, 1 ); poRec->SetIntSubfield ( "DSID", 0, "AGEN", 0, 540 ); poRec->SetStringSubfield( "DSID", 0, "COMT", 0, "" ); poField = poRec->AddField( oModule.FindFieldDefn( "DSSI" ) ); poRec->SetIntSubfield ( "DSSI", 0, "DSTR", 0, 2 ); poRec->SetIntSubfield ( "DSSI", 0, "AALL", 0, 1 ); poRec->SetIntSubfield ( "DSSI", 0, "NALL", 0, 1 ); poRec->SetIntSubfield ( "DSSI", 0, "NOMR", 0, 22 ); poRec->SetIntSubfield ( "DSSI", 0, "NOCR", 0, 0 ); poRec->SetIntSubfield ( "DSSI", 0, "NOGR", 0, 2141 ); poRec->SetIntSubfield ( "DSSI", 0, "NOLR", 0, 15 ); poRec->SetIntSubfield ( "DSSI", 0, "NOIN", 0, 512 ); poRec->SetIntSubfield ( "DSSI", 0, "NOCN", 0, 2181 ); poRec->SetIntSubfield ( "DSSI", 0, "NOED", 0, 3192 ); poRec->SetIntSubfield ( "DSSI", 0, "NOFA", 0, 0 ); poRec->Write(); delete poRec;#ifdef notdef/* -------------------------------------------------------------------- *//* Create a record. *//* -------------------------------------------------------------------- */ poRec = new DDFRecord( &oModule ); poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) ); poRec->SetFieldRaw( poField, 0, "\2\0\036", 3 ); poField = poRec->AddField( oModule.FindFieldDefn( "DSPM" ) ); poRec->SetIntSubfield ( "DSPM", 0, "RCNM", 0, 20 ); poRec->SetIntSubfield ( "DSPM", 0, "RCID", 0, 1 ); poRec->SetIntSubfield ( "DSPM", 0, "HDAT", 0, 2 ); poRec->SetIntSubfield ( "DSPM", 0, "VDAT", 0, 17 ); poRec->SetIntSubfield ( "DSPM", 0, "SDAT", 0, 23 ); poRec->SetIntSubfield ( "DSPM", 0, "CSCL", 0, 52000 ); poRec->SetIntSubfield ( "DSPM", 0, "DUNI", 0, 1 ); poRec->SetIntSubfield ( "DSPM", 0, "HUNI", 0, 1 ); poRec->SetIntSubfield ( "DSPM", 0, "PUNI", 0, 1 ); poRec->SetIntSubfield ( "DSPM", 0, "COUN", 0, 1 ); poRec->SetIntSubfield ( "DSPM", 0, "COMF", 0, 1000000 ); poRec->SetIntSubfield ( "DSPM", 0, "SOMF", 0, 10 ); poRec->Write(); delete poRec;/* -------------------------------------------------------------------- *//* Create a record. *//* -------------------------------------------------------------------- */ poRec = new DDFRecord( &oModule ); poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) ); poRec->SetFieldRaw( poField, 0, "\3\0\036", 3 ); poField = poRec->AddField( oModule.FindFieldDefn( "VRID" ) ); poRec->SetIntSubfield ( "VRID", 0, "RCNM", 0, 110 ); poRec->SetIntSubfield ( "VRID", 0, "RCID", 0, 518 ); poRec->SetIntSubfield ( "VRID", 0, "RVER", 0, 1 ); poRec->SetIntSubfield ( "VRID", 0, "RUIN", 0, 1 ); poField = poRec->AddField( oModule.FindFieldDefn( "SG3D" ) ); poRec->SetIntSubfield ( "SG3D", 0, "YCOO", 0, -325998702 ); poRec->SetIntSubfield ( "SG3D", 0, "XCOO", 0, 612175350 ); poRec->SetIntSubfield ( "SG3D", 0, "VE3D", 0, 174 ); poRec->SetIntSubfield ( "SG3D", 0, "YCOO", 1, -325995189 ); poRec->SetIntSubfield ( "SG3D", 0, "XCOO", 1, 612228812 ); poRec->SetIntSubfield ( "SG3D", 0, "VE3D", 1, 400 ); poRec->Write();#endif delete poRec;}/************************************************************************//* mk_catalog() *//************************************************************************/void mk_catalog(){ DDFModule oModule; DDFFieldDefn *poFDefn; oModule.Initialize();/* -------------------------------------------------------------------- *//* Create the '0000' definition. *//* -------------------------------------------------------------------- */ poFDefn = new DDFFieldDefn(); poFDefn->Create( "0000", "", "0001CATD", DDFFieldDefn::elementary, DDFFieldDefn::char_string ); oModule.AddField( poFDefn );/* -------------------------------------------------------------------- *//* Create the '0000' definition. *//* -------------------------------------------------------------------- */ poFDefn = new DDFFieldDefn(); poFDefn->Create( "0001", "ISO 8211 Record Identifier", "", DDFFieldDefn::elementary, DDFFieldDefn::bit_string, "(b12)" ); oModule.AddField( poFDefn );/* -------------------------------------------------------------------- *//* Create the CATD field. *//* -------------------------------------------------------------------- */ poFDefn = new DDFFieldDefn(); poFDefn->Create( "CATD", "Catalog Directory field", "", DDFFieldDefn::vector, DDFFieldDefn::mixed_data_type ); poFDefn->AddSubfield( "RCNM", "A(2)" ); poFDefn->AddSubfield( "RCID", "I(10)" ); poFDefn->AddSubfield( "FILE", "A" ); poFDefn->AddSubfield( "LFIL", "A" ); poFDefn->AddSubfield( "VOLM", "A" ); poFDefn->AddSubfield( "IMPL", "A(3)" ); poFDefn->AddSubfield( "SLAT", "R" ); poFDefn->AddSubfield( "WLON", "R" ); poFDefn->AddSubfield( "NLAT", "R" ); poFDefn->AddSubfield( "ELON", "R" ); poFDefn->AddSubfield( "CRCS", "A" ); poFDefn->AddSubfield( "COMT", "A" ); oModule.AddField( poFDefn ); oModule.Dump( stdout ); oModule.Create( "out.ddf" );/* -------------------------------------------------------------------- *//* Create a record. *//* -------------------------------------------------------------------- */ DDFRecord *poRec = new DDFRecord( &oModule ); DDFField *poField; poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) ); poRec->SetFieldRaw( poField, 0, "\0\0\036", 3 ); poField = poRec->AddField( oModule.FindFieldDefn( "CATD" ) ); poRec->SetStringSubfield( "CATD", 0, "RCNM", 0, "CD" ); poRec->SetIntSubfield ( "CATD", 0, "RCID", 0, 1 ); poRec->SetStringSubfield( "CATD", 0, "FILE", 0, "CATALOG.030" ); poRec->SetStringSubfield( "CATD", 0, "VOLM", 0, "V01X01" ); poRec->SetStringSubfield( "CATD", 0, "IMPL", 0, "ASC" ); poRec->SetStringSubfield( "CATD", 0, "COMT", 0, "Exchange Set Catalog file" ); poRec->Write(); delete poRec;/* -------------------------------------------------------------------- *//* Create a record. *//* -------------------------------------------------------------------- */ poRec = new DDFRecord( &oModule ); poField = poRec->AddField( oModule.FindFieldDefn( "0001" ) ); poRec->SetFieldRaw( poField, 0, "\1\0\036", 3 ); poField = poRec->AddField( oModule.FindFieldDefn( "CATD" ) ); poRec->SetStringSubfield( "CATD", 0, "RCNM", 0, "CD" ); poRec->SetIntSubfield ( "CATD", 0, "RCID", 0, 2 ); poRec->SetStringSubfield( "CATD", 0, "FILE", 0, "No410810.000" ); poRec->SetStringSubfield( "CATD", 0, "VOLM", 0, "V01X01" ); poRec->SetStringSubfield( "CATD", 0, "IMPL", 0, "BIN" ); poRec->SetFloatSubfield ( "CATD", 0, "SLAT", 0, 59.000005 ); poRec->SetFloatSubfield ( "CATD", 0, "WLON", 0, 4.999996 ); poRec->SetFloatSubfield ( "CATD", 0, "NLAT", 0, 59.500003 ); poRec->SetFloatSubfield ( "CATD", 0, "ELON", 0, 5.499997 ); poRec->SetStringSubfield( "CATD", 0, "CRCS", 0, "555C3AD4" ); poRec->Write(); delete poRec;}/* **********************************************************************//* main() *//* **********************************************************************/int main( int nArgc, char ** papszArgv ){ mk_s57();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -