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

📄 shapefil.h

📁 用于读取TAB、MIF、SHP文件的类
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef _SHAPEFILE_H_INCLUDED#define _SHAPEFILE_H_INCLUDED/****************************************************************************** * $Id: shapefil.h,v 1.17 2006/06/17 00:27:26 fwarmerdam Exp $ * * Project:  Shapelib * Purpose:  Primary include file for Shapelib. * Author:   Frank Warmerdam, warmerdam@pobox.com * ****************************************************************************** * Copyright (c) 1999, Frank Warmerdam * * This software is available under the following "MIT Style" license, * or at the option of the licensee under the LGPL (see LICENSE.LGPL).  This * option is discussed in more detail in shapelib.html. * * -- *  * 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: shapefil.h,v $ * Revision 1.17  2006/06/17 00:27:26  fwarmerdam * updated * * Revision 1.33  2006/02/15 01:14:30  fwarmerdam * added DBFAddNativeFieldType * * Revision 1.32  2006/01/26 15:07:32  fwarmerdam * add bMeasureIsUsed flag from Craig Bruce: Bug 1249 * * Revision 1.31  2006/01/05 01:27:27  fwarmerdam * added dbf deletion mark/fetch * * Revision 1.30  2005/01/03 22:30:13  fwarmerdam * added support for saved quadtrees * * Revision 1.29  2004/09/26 20:09:35  fwarmerdam * avoid rcsid warnings * * Revision 1.28  2003/12/29 06:02:18  fwarmerdam * added cpl_error.h option * * Revision 1.27  2003/04/21 18:30:37  warmerda * added header write/update public methods * * Revision 1.26  2002/09/29 00:00:08  warmerda * added FTLogical and logical attribute read/write calls * * Revision 1.25  2002/05/07 13:46:30  warmerda * added DBFWriteAttributeDirectly(). * * Revision 1.24  2002/04/10 16:59:54  warmerda * added SHPRewindObject * * Revision 1.23  2002/01/15 14:36:07  warmerda * updated email address * * Revision 1.22  2002/01/15 14:32:00  warmerda * try to improve SHPAPI_CALL docs */#include <stdio.h>#ifdef USE_DBMALLOC#include <dbmalloc.h>#endif#ifdef USE_CPL#include "cpl_error.h"#endif#ifdef __cplusplusextern "C" {#endif/************************************************************************//*                        Configuration options.                        *//************************************************************************//* -------------------------------------------------------------------- *//*      Should the DBFReadStringAttribute() strip leading and           *//*      trailing white space?                                           *//* -------------------------------------------------------------------- */#define TRIM_DBF_WHITESPACE/* -------------------------------------------------------------------- *//*      Should we write measure values to the Multipatch object?        *//*      Reportedly ArcView crashes if we do write it, so for now it     *//*      is disabled.                                                    *//* -------------------------------------------------------------------- */#define DISABLE_MULTIPATCH_MEASURE/* -------------------------------------------------------------------- *//*      SHPAPI_CALL                                                     *//*                                                                      *//*      The following two macros are present to allow forcing           *//*      various calling conventions on the Shapelib API.                *//*                                                                      *//*      To force __stdcall conventions (needed to call Shapelib         *//*      from Visual Basic and/or Dephi I believe) the makefile could    *//*      be modified to define:                                          *//*                                                                      *//*        /DSHPAPI_CALL=__stdcall                                       *//*                                                                      *//*      If it is desired to force export of the Shapelib API without    *//*      using the shapelib.def file, use the following definition.      *//*                                                                      *//*        /DSHAPELIB_DLLEXPORT                                          *//*                                                                      *//*      To get both at once it will be necessary to hack this           *//*      include file to define:                                         *//*                                                                      *//*        #define SHPAPI_CALL __declspec(dllexport) __stdcall           *//*        #define SHPAPI_CALL1 __declspec(dllexport) * __stdcall        *//*                                                                      *//*      The complexity of the situtation is partly caused by the        *//*      peculiar requirement of Visual C++ that __stdcall appear        *//*      after any "*"'s in the return value of a function while the     *//*      __declspec(dllexport) must appear before them.                  *//* -------------------------------------------------------------------- */#ifdef SHAPELIB_DLLEXPORT#  define SHPAPI_CALL __declspec(dllexport)#  define SHPAPI_CALL1(x)  __declspec(dllexport) x#endif#ifndef SHPAPI_CALL#  define SHPAPI_CALL#endif#ifndef SHPAPI_CALL1#  define SHPAPI_CALL1(x)      x SHPAPI_CALL#endif    /* -------------------------------------------------------------------- *//*      Macros for controlling CVSID and ensuring they don't appear     *//*      as unreferenced variables resulting in lots of warnings.        *//* -------------------------------------------------------------------- */#ifndef DISABLE_CVSID#  define SHP_CVSID(string)     static char cpl_cvsid[] = string; \static char *cvsid_aw() { return( cvsid_aw() ? ((char *) NULL) : cpl_cvsid ); }#else#  define SHP_CVSID(string)#endif/************************************************************************//*                             SHP Support.                             *//************************************************************************/typedef	struct{    FILE        *fpSHP;    FILE	*fpSHX;    int		nShapeType;				/* SHPT_* */        int		nFileSize;				/* SHP file */    int         nRecords;    int		nMaxRecords;    int		*panRecOffset;    int		*panRecSize;    double	adBoundsMin[4];    double	adBoundsMax[4];    int		bUpdated;    unsigned char *pabyRec;    int         nBufSize;} SHPInfo;typedef SHPInfo * SHPHandle;/* -------------------------------------------------------------------- *//*      Shape types (nSHPType)                                          *//* -------------------------------------------------------------------- */#define SHPT_NULL	0#define SHPT_POINT	1#define SHPT_ARC	3#define SHPT_POLYGON	5#define SHPT_MULTIPOINT	8#define SHPT_POINTZ	11#define SHPT_ARCZ	13#define SHPT_POLYGONZ	15#define SHPT_MULTIPOINTZ 18#define SHPT_POINTM	21#define SHPT_ARCM	23#define SHPT_POLYGONM	25#define SHPT_MULTIPOINTM 28#define SHPT_MULTIPATCH 31/* -------------------------------------------------------------------- *//*      Part types - everything but SHPT_MULTIPATCH just uses           *//*      SHPP_RING.                                                      *//* -------------------------------------------------------------------- */#define SHPP_TRISTRIP	0#define SHPP_TRIFAN	1#define SHPP_OUTERRING	2#define SHPP_INNERRING	3#define SHPP_FIRSTRING	4#define SHPP_RING	5/* -------------------------------------------------------------------- *//*      SHPObject - represents on shape (without attributes) read       *//*      from the .shp file.                                             *//* -------------------------------------------------------------------- */typedef struct{    int		nSHPType;    int		nShapeId; /* -1 is unknown/unassigned */    int		nParts;    int		*panPartStart;    int		*panPartType;        int		nVertices;    double	*padfX;    double	*padfY;    double	*padfZ;    double	*padfM;    double	dfXMin;    double	dfYMin;    double	dfZMin;    double	dfMMin;

⌨️ 快捷键说明

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