📄 s57.h
字号:
/****************************************************************************** * $Id: s57.h,v 1.30 2004/08/30 20:12:21 warmerda Exp $ * * Project: S-57 Translator * Purpose: Declarations for S-57 translator not including the * binding onto OGRLayer/DataSource/Driver which are found in * ogr_s57.h. * Author: Frank Warmerdam, warmerda@home.com * ****************************************************************************** * Copyright (c) 1999, Frank Warmerdam * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included * in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. ****************************************************************************** * * $Log: s57.h,v $ * Revision 1.30 2004/08/30 20:12:21 warmerda * various optimizations * * Revision 1.29 2004/06/01 14:51:19 warmerda * expand tabs * * Revision 1.28 2004/05/11 18:17:34 warmerda * export various classes * * Revision 1.27 2003/11/17 20:10:46 warmerda * added support for writing FFPT linkages * * Revision 1.26 2003/11/12 21:24:23 warmerda * updates to new featuredefn generators * * Revision 1.25 2003/09/15 20:53:06 warmerda * fleshed out feature writing * * Revision 1.24 2003/09/09 16:43:02 warmerda * added writer class * * Revision 1.23 2003/09/05 19:12:05 warmerda * added RETURN_PRIMITIVES support to get low level prims * * Revision 1.22 2003/08/21 21:25:30 warmerda * Rodney Jensen: Addd FindRecordByObjl() * * Revision 1.21 2002/10/28 22:30:24 warmerda * tab expanded * * Revision 1.20 2002/05/14 20:34:27 warmerda * added PRESERVE_EMPTY_NUMBERS support * * Revision 1.19 2002/03/05 14:25:43 warmerda * expanded tabs * * Revision 1.18 2002/02/18 21:26:34 warmerda * removed declaration for OGRBuildPolygonFromEdges * * Revision 1.17 2001/12/19 22:44:53 warmerda * added ADD_SOUNDG_DEPTH support * * Revision 1.16 2001/12/17 22:35:16 warmerda * added ReadFeature method * * Revision 1.15 2001/12/14 19:40:18 warmerda * added optimized feature counting, and extents collection * * Revision 1.14 2001/09/12 17:03:21 warmerda * auto update support * * Revision 1.13 2001/08/30 21:18:39 warmerda * fixed typedef * * Revision 1.12 2001/08/30 21:06:55 warmerda * expand tabs * * Revision 1.11 2001/08/30 03:48:43 warmerda * preliminary implementation of S57 Update Support * * Revision 1.10 2000/06/16 18:10:05 warmerda * expanded tabs * * Revision 1.9 1999/11/26 16:17:58 warmerda * added DSNM * * Revision 1.8 1999/11/26 15:08:38 warmerda * added setoptions, and LNAM support * * Revision 1.7 1999/11/25 20:53:49 warmerda * added sounding and S57_SPLIT_MULTIPOINT support * * Revision 1.6 1999/11/18 19:01:25 warmerda * expanded tabs * * Revision 1.5 1999/11/18 18:58:37 warmerda * added s57FileCollector() * * Revision 1.4 1999/11/16 21:47:32 warmerda * updated class occurance collection * * Revision 1.3 1999/11/08 22:23:00 warmerda * added object class support * * Revision 1.2 1999/11/04 21:19:13 warmerda * added polygon support * * Revision 1.1 1999/11/03 22:12:43 warmerda * New * */#ifndef _S57_H_INCLUDED#define _S57_H_INCLUDED#include "ogr_feature.h"#include "iso8211.h"class S57Reader;char **S57FileCollector( const char * pszDataset );#define EMPTY_NUMBER_MARKER 2147483641 /* MAXINT-6 *//* -------------------------------------------------------------------- *//* Various option strings. *//* -------------------------------------------------------------------- */#define S57O_UPDATES "UPDATES"#define S57O_LNAM_REFS "LNAM_REFS"#define S57O_SPLIT_MULTIPOINT "SPLIT_MULTIPOINT"#define S57O_ADD_SOUNDG_DEPTH "ADD_SOUNDG_DEPTH"#define S57O_PRESERVE_EMPTY_NUMBERS "PRESERVE_EMPTY_NUMBERS"#define S57O_RETURN_PRIMITIVES "RETURN_PRIMITIVES"#define S57O_RETURN_LINKAGES "RETURN_LINKAGES"#define S57M_UPDATES 0x01#define S57M_LNAM_REFS 0x02#define S57M_SPLIT_MULTIPOINT 0x04#define S57M_ADD_SOUNDG_DEPTH 0x08#define S57M_PRESERVE_EMPTY_NUMBERS 0x10#define S57M_RETURN_PRIMITIVES 0x20#define S57M_RETURN_LINKAGES 0x40/* -------------------------------------------------------------------- *//* RCNM values. *//* -------------------------------------------------------------------- */#define RCNM_FE 100 /* Feature record */#define RCNM_VI 110 /* Isolated Node */#define RCNM_VC 120 /* Connected Node */#define RCNM_VE 130 /* Edge */#define RCNM_VF 140 /* Face */#define OGRN_VI "IsolatedNode"#define OGRN_VC "ConnectedNode"#define OGRN_VE "Edge"#define OGRN_VF "Face"/* -------------------------------------------------------------------- *//* FRID PRIM values. *//* -------------------------------------------------------------------- */#define PRIM_P 1 /* point feature */#define PRIM_L 2 /* line feature */#define PRIM_A 3 /* area feature */#define PRIM_N 4 /* non-spatial feature *//************************************************************************//* S57ClassRegistrar *//************************************************************************/#define MAX_CLASSES 23000#define MAX_ATTRIBUTES 25000class CPL_DLL S57ClassRegistrar{ // Class information: int nClasses; char **papszClassesInfo; char ***papapszClassesFields; int iCurrentClass; char **papszCurrentFields; char **papszTempResult; // Attribute Information: int nAttrMax; int nAttrCount; char **papszAttrNames; char **papszAttrAcronym; char ***papapszAttrValues; char *pachAttrType; char *pachAttrClass; int *panAttrIndex; // sorted by acronym. int FindFile( const char *pszTarget, const char *pszDirectory, int bReportErr, FILE **fp ); const char *ReadLine( FILE * fp ); char **papszNextLine;public: S57ClassRegistrar(); ~S57ClassRegistrar(); int LoadInfo( const char *, int ); // class table methods. int SelectClassByIndex( int ); int SelectClass( int ); int SelectClass( const char * ); int Rewind() { return SelectClassByIndex(0); } int NextClass() { return SelectClassByIndex(iCurrentClass+1); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -