⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ntf.h

📁 GIS系统支持库Geospatial Data Abstraction Library代码.GDAL is a translator library for raster geospatial dat
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** * $Id: ntf.h,v 1.26 2005/02/22 12:54:16 fwarmerdam Exp $ * * Project:  NTF Translator * Purpose:  Main declarations for NTF translator. * Author:   Frank Warmerdam, warmerdam@pobox.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: ntf.h,v $ * Revision 1.26  2005/02/22 12:54:16  fwarmerdam * use OGRLayer base spatial filter support * * Revision 1.25  2004/11/17 19:30:15  fwarmerdam * further fixes to stroking 3pt arcs * * Revision 1.24  2003/02/27 21:08:02  warmerda * added GetZMult() method * * Revision 1.23  2003/01/07 16:46:28  warmerda * Added support for forming polygons by caching line geometries * * Revision 1.22  2002/11/17 05:16:49  warmerda * added meridian 2 support * * Revision 1.21  2002/07/08 14:49:44  warmerda * added TILE_REF uniquification support * * Revision 1.20  2002/02/11 16:52:43  warmerda * added ReadPhysicalLine() method on NTFRecord * * Revision 1.19  2002/02/08 20:41:48  warmerda * removed tabs * * Revision 1.18  2001/12/11 20:37:49  warmerda * add option to avoid caching indexed records on multiple readers * * Revision 1.17  2001/08/28 20:41:14  warmerda * added support for type 5 GTYPE values on GEOMETRY record * * Revision 1.16  2001/08/23 14:47:31  warmerda * Added support for adding an _LIST attribute to the OGRFeatures in * cases of GENERIC features for which an attribute appears more than * once per features.  This has occured with the SAMPE1250.NTF Irish * dataset which has multiple feature codes for some line features. * * Revision 1.15  2001/05/01 13:47:36  warmerda * keep track if generic geometry is 3D * * Revision 1.14  2001/01/19 20:31:12  warmerda * expand tabs * * Revision 1.13  2001/01/17 19:08:37  warmerda * added CODELIST support * * Revision 1.12  2000/12/06 19:31:16  warmerda * added BL2000 support * * Revision 1.11  1999/11/04 21:11:21  warmerda * Added TestCapability() methods for creation overhaul. * * Revision 1.10  1999/10/04 13:28:43  warmerda * added DEM_SAMPLE support * * Revision 1.9  1999/10/04 03:08:52  warmerda * added raster support * * Revision 1.8  1999/10/01 14:47:51  warmerda * major upgrade: generic, string feature codes, etc * * Revision 1.7  1999/09/29 16:44:18  warmerda * added spatial ref handling * * Revision 1.6  1999/09/14 01:34:36  warmerda * added scale support, and generation of TEXT_HT_GROUND * * Revision 1.5  1999/09/13 14:07:21  warmerda * added landline99 and geometry3d * * Revision 1.4  1999/09/08 00:59:09  warmerda * Added limiting list of files for OGRNTFDataSource::Open() for FME IDs. * * Revision 1.3  1999/08/30 16:47:29  warmerda * added feature class layer, and new product codes * * Revision 1.2  1999/08/28 18:24:42  warmerda * added TestForLayer() optimization * * Revision 1.1  1999/08/28 03:13:35  warmerda * New * */#ifndef _NTF_H_INCLUDED#define _NTF_H_INCLUDED#include "cpl_conv.h"#include "ogrsf_frmts.h"/* -------------------------------------------------------------------- *//*      Record types.                                                   *//* -------------------------------------------------------------------- */#define NRT_VHR       1                /* Volume Header Record */#define NRT_DHR       2                /* Database Header Record */#define NRT_FCR       5                /* Feature Classification Record */#define NRT_SHR       7                /* Section Header Record */#define NRT_NAMEREC  11                /* Name Record */#define NRT_NAMEPOSTN 12               /* Name Position */#define NRT_ATTREC   14                /* Attribute Record */#define NRT_POINTREC 15                /* Point Record */#define NRT_NODEREC  16                /* Node Record */#define NRT_GEOMETRY 21                /* Geometry Record */#define NRT_GEOMETRY3D 22              /* 3D Geometry Record */#define NRT_LINEREC  23                /* Line Record */#define NRT_CHAIN    24                /* Chain */#define NRT_POLYGON  31                /* Polygon */#define NRT_CPOLY    33                /* Complex Polygon */#define NRT_COLLECT  34                /* Collection of featues */#define NRT_ADR      40                /* Attribute Description Record */#define NRT_CODELIST 42                /* Codelist Record (ie. BL2000) */#define NRT_TEXTREC  43                /* Text */#define NRT_TEXTPOS  44                /* Text position */#define NRT_TEXTREP  45                /* Text representation */#define NRT_GRIDHREC 50                /* Grid Header Record */#define NRT_GRIDREC  51                /* Grid Data Record */#define NRT_COMMENT  90                /* Comment record */#define NRT_VTR      99                /* Volume Termination Record *//* -------------------------------------------------------------------- *//*      Product names (DBNAME) and codes.                               *//* -------------------------------------------------------------------- */#define NPC_UNKNOWN             0#define NPC_LANDLINE            1#define NPC_LANDLINE99          2#define NTF_LANDLINE            "LAND-LINE.93"#define NTF_LANDLINE_PLUS       "LAND-LINE.93+"#define NPC_STRATEGI            3#define NTF_STRATEGI            "Strategi_02.96"#define NPC_MERIDIAN            4#define NTF_MERIDIAN            "Meridian_01.95"#define NPC_BOUNDARYLINE        5#define NTF_BOUNDARYLINE        "Boundary-Line"#define NPC_BASEDATA            6#define NTF_BASEDATA            "BaseData.GB_01.96"#define NPC_OSCAR_ASSET         7#define NPC_OSCAR_TRAFFIC       8#define NPC_OSCAR_ROUTE         9#define NPC_OSCAR_NETWORK       10#define NPC_ADDRESS_POINT       11#define NPC_CODE_POINT          12#define NPC_CODE_POINT_PLUS     13#define NPC_LANDFORM_PROFILE_CONT 14#define NPC_LANDRANGER_CONT     15#define NTF_LANDRANGER_CONT     "OS_LANDRANGER_CONT"#define NPC_LANDRANGER_DTM      16#define NPC_LANDFORM_PROFILE_DTM 17#define NPC_BL2000              18#define NPC_MERIDIAN2           19#define NTF_MERIDIAN2           "Meridian_02.01"/************************************************************************//*                              NTFRecord                               *//************************************************************************/class NTFRecord{    int      nType;    int      nLength;    char    *pszData;    int      ReadPhysicalLine( FILE *fp, char *pszLine );      public:             NTFRecord( FILE * );             ~NTFRecord();    int      GetType() { return nType; }    int      GetLength() { return nLength; }    const char *GetData() { return pszData; }    const char *GetField( int, int );};/************************************************************************//*                           NTFGenericClass                            *//************************************************************************/class NTFGenericClass{public:    int         nFeatureCount;    int         b3D;    int         nAttrCount;    char        **papszAttrNames;    char        **papszAttrFormats;    int         *panAttrMaxWidth;    int         *pabAttrMultiple;                NTFGenericClass();                ~NTFGenericClass();        void        CheckAddAttr( const char *, const char *, int );    void        SetMultiple( const char * );};/************************************************************************//*                             NTFCodeList                              *//************************************************************************/class NTFCodeList{public:                NTFCodeList( NTFRecord * );                ~NTFCodeList();    const char  *Lookup( const char * );    char        szValType[3];   /* attribute code for list, ie. AC */    char        szFInter[6];    /* format of code values */     int         nNumCode;    char        **papszCodeVal; /* Short code value */    char        **papszCodeDes; /* Long description of code */};/************************************************************************//*                              NTFAttDesc                              *//************************************************************************/typedef struct{  char  val_type     [ 2 +1];  char  fwidth       [ 3 +1];  char  finter       [ 5 +1];  char  att_name     [ 100 ];  NTFCodeList *poCodeList;} NTFAttDesc;class OGRNTFLayer;class OGRNTFRasterLayer;class OGRNTFDataSource;class NTFFileReader;#define MAX_REC_GROUP   100typedef OGRFeature *(*NTFFeatureTranslator)(NTFFileReader *,                                            OGRNTFLayer *,                                            NTFRecord **);typedef int (*NTFRecordGrouper)(NTFFileReader *, NTFRecord **, NTFRecord *);/************************************************************************//*                            NTFFileReader                             *//************************************************************************/class NTFFileReader{    char             *pszFilename;    OGRNTFDataSource *poDS;            FILE             *fp;    // feature class list.    int               nFCCount;    char            **papszFCNum;    char            **papszFCName;    // attribute definitions    int               nAttCount;    NTFAttDesc       *pasAttDesc;    char             *pszTileName;    int               nCoordWidth;    int               nZWidth;    int               nNTFLevel;    double            dfXYMult;    double            dfZMult;    double            dfXOrigin;    double            dfYOrigin;    double            dfTileXSize;    double            dfTileYSize;    double            dfScale;    double            dfPaperToGround;    long              nStartPos;    long              nPreSavedPos;    long              nPostSavedPos;    NTFRecord        *poSavedRecord;    long              nSavedFeatureId;    long              nBaseFeatureId;    long              nFeatureCount;         NTFRecord         *apoCGroup[MAX_REC_GROUP+1];    char             *pszProduct;    char             *pszPVName;    int               nProduct;    void              EstablishLayers();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -