亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? shpopen.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
?? 第 1 頁 / 共 5 頁
字號:
            padfMaxBound[i] = psSHP->adBoundsMax[i];    }}/************************************************************************//*                             SHPCreate()                              *//*                                                                      *//*      Create a new shape file and return a handle to the open         *//*      shape file with read/write access.                              *//************************************************************************/SHPHandle SHPAPI_CALLSHPCreate( const char * pszLayer, int nShapeType ){    char	*pszBasename, *pszFullname;    int		i;    FILE	*fpSHP, *fpSHX;    uchar     	abyHeader[100];    int32	i32;    double	dValue;    /* -------------------------------------------------------------------- *//*      Establish the byte order on this system.                        *//* -------------------------------------------------------------------- */    i = 1;    if( *((uchar *) &i) == 1 )        bBigEndian = FALSE;    else        bBigEndian = TRUE;/* -------------------------------------------------------------------- *//*	Compute the base (layer) name.  If there is any extension	*//*	on the passed in filename we will strip it off.			*//* -------------------------------------------------------------------- */    pszBasename = (char *) malloc(strlen(pszLayer)+5);    strcpy( pszBasename, pszLayer );    for( i = strlen(pszBasename)-1; 	 i > 0 && pszBasename[i] != '.' && pszBasename[i] != '/'	       && pszBasename[i] != '\\';	 i-- ) {}    if( pszBasename[i] == '.' )        pszBasename[i] = '\0';/* -------------------------------------------------------------------- *//*      Open the two files so we can write their headers.               *//* -------------------------------------------------------------------- */    pszFullname = (char *) malloc(strlen(pszBasename) + 5);    sprintf( pszFullname, "%s.shp", pszBasename );    fpSHP = fopen(pszFullname, "wb" );    if( fpSHP == NULL )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_AppDefined,                   "Failed to create file %s.",                  pszFullname );#endif        return( NULL );    }    sprintf( pszFullname, "%s.shx", pszBasename );    fpSHX = fopen(pszFullname, "wb" );    if( fpSHX == NULL )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_AppDefined,                   "Failed to create file %s.",                  pszFullname );#endif        return( NULL );    }    free( pszFullname );    free( pszBasename );/* -------------------------------------------------------------------- *//*      Prepare header block for .shp file.                             *//* -------------------------------------------------------------------- */    for( i = 0; i < 100; i++ )      abyHeader[i] = 0;    abyHeader[2] = 0x27;				/* magic cookie */    abyHeader[3] = 0x0a;    i32 = 50;						/* file size */    ByteCopy( &i32, abyHeader+24, 4 );    if( !bBigEndian ) SwapWord( 4, abyHeader+24 );        i32 = 1000;						/* version */    ByteCopy( &i32, abyHeader+28, 4 );    if( bBigEndian ) SwapWord( 4, abyHeader+28 );        i32 = nShapeType;					/* shape type */    ByteCopy( &i32, abyHeader+32, 4 );    if( bBigEndian ) SwapWord( 4, abyHeader+32 );    dValue = 0.0;					/* set bounds */    ByteCopy( &dValue, abyHeader+36, 8 );    ByteCopy( &dValue, abyHeader+44, 8 );    ByteCopy( &dValue, abyHeader+52, 8 );    ByteCopy( &dValue, abyHeader+60, 8 );/* -------------------------------------------------------------------- *//*      Write .shp file header.                                         *//* -------------------------------------------------------------------- */    if( fwrite( abyHeader, 100, 1, fpSHP ) != 1 )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_AppDefined,                   "Failed to write .shp header." );#endif        return NULL;    }/* -------------------------------------------------------------------- *//*      Prepare, and write .shx file header.                            *//* -------------------------------------------------------------------- */    i32 = 50;						/* file size */    ByteCopy( &i32, abyHeader+24, 4 );    if( !bBigEndian ) SwapWord( 4, abyHeader+24 );        if( fwrite( abyHeader, 100, 1, fpSHX ) != 1 )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_AppDefined,                   "Failed to write .shx header." );#endif        return NULL;    }/* -------------------------------------------------------------------- *//*      Close the files, and then open them as regular existing files.  *//* -------------------------------------------------------------------- */    fclose( fpSHP );    fclose( fpSHX );    return( SHPOpen( pszLayer, "r+b" ) );}/************************************************************************//*                           _SHPSetBounds()                            *//*                                                                      *//*      Compute a bounds rectangle for a shape, and set it into the     *//*      indicated location in the record.                               *//************************************************************************/static void	_SHPSetBounds( uchar * pabyRec, SHPObject * psShape ){    ByteCopy( &(psShape->dfXMin), pabyRec +  0, 8 );    ByteCopy( &(psShape->dfYMin), pabyRec +  8, 8 );    ByteCopy( &(psShape->dfXMax), pabyRec + 16, 8 );    ByteCopy( &(psShape->dfYMax), pabyRec + 24, 8 );    if( bBigEndian )    {        SwapWord( 8, pabyRec + 0 );        SwapWord( 8, pabyRec + 8 );        SwapWord( 8, pabyRec + 16 );        SwapWord( 8, pabyRec + 24 );    }}/************************************************************************//*                         SHPComputeExtents()                          *//*                                                                      *//*      Recompute the extents of a shape.  Automatically done by        *//*      SHPCreateObject().                                              *//************************************************************************/void SHPAPI_CALLSHPComputeExtents( SHPObject * psObject ){    int		i;    /* -------------------------------------------------------------------- *//*      Build extents for this object.                                  *//* -------------------------------------------------------------------- */    if( psObject->nVertices > 0 )    {        psObject->dfXMin = psObject->dfXMax = psObject->padfX[0];        psObject->dfYMin = psObject->dfYMax = psObject->padfY[0];        psObject->dfZMin = psObject->dfZMax = psObject->padfZ[0];        psObject->dfMMin = psObject->dfMMax = psObject->padfM[0];    }        for( i = 0; i < psObject->nVertices; i++ )    {        psObject->dfXMin = MIN(psObject->dfXMin, psObject->padfX[i]);        psObject->dfYMin = MIN(psObject->dfYMin, psObject->padfY[i]);        psObject->dfZMin = MIN(psObject->dfZMin, psObject->padfZ[i]);        psObject->dfMMin = MIN(psObject->dfMMin, psObject->padfM[i]);        psObject->dfXMax = MAX(psObject->dfXMax, psObject->padfX[i]);        psObject->dfYMax = MAX(psObject->dfYMax, psObject->padfY[i]);        psObject->dfZMax = MAX(psObject->dfZMax, psObject->padfZ[i]);        psObject->dfMMax = MAX(psObject->dfMMax, psObject->padfM[i]);    }}/************************************************************************//*                          SHPCreateObject()                           *//*                                                                      *//*      Create a shape object.  It should be freed with                 *//*      SHPDestroyObject().                                             *//************************************************************************/SHPObject SHPAPI_CALL1(*)SHPCreateObject( int nSHPType, int nShapeId, int nParts,                 const int * panPartStart, const int * panPartType,                 int nVertices, const double *padfX, const double *padfY,                 const double * padfZ, const double * padfM ){    SHPObject	*psObject;    int		i, bHasM, bHasZ;    psObject = (SHPObject *) calloc(1,sizeof(SHPObject));    psObject->nSHPType = nSHPType;    psObject->nShapeId = nShapeId;    psObject->bMeasureIsUsed = FALSE;/* -------------------------------------------------------------------- *//*	Establish whether this shape type has M, and Z values.		*//* -------------------------------------------------------------------- */    if( nSHPType == SHPT_ARCM        || nSHPType == SHPT_POINTM        || nSHPType == SHPT_POLYGONM        || nSHPType == SHPT_MULTIPOINTM )    {        bHasM = TRUE;        bHasZ = FALSE;    }    else if( nSHPType == SHPT_ARCZ             || nSHPType == SHPT_POINTZ             || nSHPType == SHPT_POLYGONZ             || nSHPType == SHPT_MULTIPOINTZ             || nSHPType == SHPT_MULTIPATCH )    {        bHasM = TRUE;        bHasZ = TRUE;    }    else    {        bHasM = FALSE;        bHasZ = FALSE;    }/* -------------------------------------------------------------------- *//*      Capture parts.  Note that part type is optional, and            *//*      defaults to ring.                                               *//* -------------------------------------------------------------------- */    if( nSHPType == SHPT_ARC || nSHPType == SHPT_POLYGON        || nSHPType == SHPT_ARCM || nSHPType == SHPT_POLYGONM        || nSHPType == SHPT_ARCZ || nSHPType == SHPT_POLYGONZ        || nSHPType == SHPT_MULTIPATCH )    {        psObject->nParts = MAX(1,nParts);        psObject->panPartStart = (int *)            malloc(sizeof(int) * psObject->nParts);        psObject->panPartType = (int *)            malloc(sizeof(int) * psObject->nParts);        psObject->panPartStart[0] = 0;        psObject->panPartType[0] = SHPP_RING;                for( i = 0; i < nParts; i++ )        {            psObject->panPartStart[i] = panPartStart[i];            if( panPartType != NULL )                psObject->panPartType[i] = panPartType[i];            else                psObject->panPartType[i] = SHPP_RING;        }        if( psObject->panPartStart[0] != 0 )        {#ifdef USE_CPL            CPLError( CE_Failure, CPLE_AppDefined,                      "panPartStart[0] != 0, patching internally.  Please fix your code!\n" );#else            fprintf( stderr, "panPartStart[0] != 0, patching internally.  Please fix your code!\n" );#endif            psObject->panPartStart[0] = 0;        }    }/* -------------------------------------------------------------------- *//*      Capture vertices.  Note that Z and M are optional, but X and    *//*      Y are not.                                                      *//* -------------------------------------------------------------------- */    if( nVertices > 0 )    {        psObject->padfX = (double *) calloc(sizeof(double),nVertices);        psObject->padfY = (double *) calloc(sizeof(double),nVertices);        psObject->padfZ = (double *) calloc(sizeof(double),nVertices);        psObject->padfM = (double *) calloc(sizeof(double),nVertices);        assert( padfX != NULL );        assert( padfY != NULL );            for( i = 0; i < nVertices; i++ )        {            psObject->padfX[i] = padfX[i];            psObject->padfY[i] = padfY[i];            if( padfZ != NULL && bHasZ )                psObject->padfZ[i] = padfZ[i];            if( padfM != NULL && bHasM )                psObject->padfM[i] = padfM[i];        }        if( padfM != NULL && bHasM )            psObject->bMeasureIsUsed = TRUE;    }/* -------------------------------------------------------------------- *//*      Compute the extents.                                            *//* -------------------------------------------------------------------- */    psObject->nVertices = nVertices;    SHPComputeExtents( psObject );    return( psObject );}/************************************************************************//*                       SHPCreateSimpleObject()                        *//*                                                                      *//*      Create a simple (common) shape object.  Destroy with            *//*      SHPDestroyObject().                                             *//************************************************************************/SHPObject SHPAPI_CALL1(*)SHPCreateSimpleObject( int nSHPType, int nVertices,                       const double * padfX, const double * padfY,                       const double * padfZ ){    return( SHPCreateObject( nSHPType, -1, 0, NULL, NULL,                             nVertices, padfX, padfY, padfZ, NULL ) );}                                  /************************************************************************//*                           SHPWriteObject()                           *//*                                                                      *//*      Write out the vertices of a new structure.  Note that it is     *//*      only possible to write vertices at the end of the file.         *//************************************************************************/int SHPAPI_CALLSHPWriteObject(SHPHandle psSHP, int nShapeId, SHPObject * psObject )		      

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品女上位| 国产精品99久久久久久久女警 | 视频一区二区欧美| 国产麻豆日韩欧美久久| 欧美在线免费观看视频| 久久久亚洲高清| 亚洲成a人v欧美综合天堂| 粉嫩aⅴ一区二区三区四区五区| 欧美日韩一区二区在线观看视频 | 日韩三级视频在线观看| 亚洲欧洲色图综合| 国产一区在线观看视频| 欧美福利视频导航| 亚洲女女做受ⅹxx高潮| 国产成人久久精品77777最新版本| 欧美日韩一本到| 国产精品精品国产色婷婷| 久久国产人妖系列| 欧美人妖巨大在线| 亚洲午夜电影在线| 色综合久久综合中文综合网| 久久嫩草精品久久久久| 蜜桃免费网站一区二区三区| 欧美日韩色一区| 亚洲午夜免费视频| 在线精品视频小说1| 亚洲欧美一区二区不卡| 99久久精品一区二区| 国产精品久久久久久久久免费樱桃 | 麻豆成人免费电影| 欧美一级在线免费| 男人的天堂久久精品| 欧美影院精品一区| 一区二区在线观看视频在线观看| 99久久免费精品高清特色大片| 国产精品久久久久婷婷| 成人av电影在线观看| 亚洲欧美在线观看| 在线观看视频欧美| 亚洲欧美日韩国产中文在线| 91网站黄www| 亚洲国产色一区| 欧美日韩1234| 麻豆91精品91久久久的内涵| 日韩欧美国产系列| 国产精品88av| 中文字幕不卡三区| 色哟哟国产精品免费观看| 亚洲一区二区不卡免费| 欧美另类一区二区三区| 精品一区二区精品| 国产欧美日韩在线| 一本到高清视频免费精品| 亚洲一二三四在线| 精品国产免费人成在线观看| 国产精品99久久久久久有的能看| 中文字幕亚洲在| 欧美色综合天天久久综合精品| 日韩av在线发布| 久久久欧美精品sm网站| www.欧美色图| 无码av免费一区二区三区试看| 欧美一区二区三区日韩视频| 久久99国产乱子伦精品免费| 国产精品久久福利| 欧美亚洲国产怡红院影院| 久色婷婷小香蕉久久| 中文字幕不卡的av| 欧美精品99久久久**| 国产成人精品免费视频网站| 亚洲综合色丁香婷婷六月图片| 日韩一级高清毛片| 91丝袜美腿高跟国产极品老师| 五月综合激情婷婷六月色窝| 国产喂奶挤奶一区二区三区| 欧美性大战xxxxx久久久| 国产毛片精品一区| 午夜不卡av在线| 国产精品欧美久久久久无广告| 欧美视频一二三区| 成人免费精品视频| 麻豆高清免费国产一区| 亚洲综合色视频| 国产精品久久一卡二卡| 91精品婷婷国产综合久久竹菊| 99久久久精品免费观看国产蜜| 久久99久久99精品免视看婷婷| 一区二区三区精品| 国产精品全国免费观看高清| 日韩一级二级三级精品视频| 在线中文字幕一区二区| 高清国产一区二区| 久久99久久精品| 日本欧美一区二区| 无吗不卡中文字幕| 午夜欧美视频在线观看| 亚洲日本在线天堂| 国产精品久久久久aaaa| 久久久久久久国产精品影院| 日韩一区二区中文字幕| 精品视频在线免费看| 色天使色偷偷av一区二区| 风间由美一区二区三区在线观看| 麻豆freexxxx性91精品| 热久久免费视频| 偷拍与自拍一区| 亚洲成在线观看| 亚洲夂夂婷婷色拍ww47| 亚洲线精品一区二区三区 | 久久精品人人做| 日韩美女天天操| 欧美一级一区二区| 日韩一区二区免费视频| 日韩一区二区在线观看视频播放| 欧美三电影在线| 51精品视频一区二区三区| 欧美日韩夫妻久久| 91精品一区二区三区久久久久久| 91精品国产美女浴室洗澡无遮挡| 在线播放一区二区三区| 日韩三级在线免费观看| 欧美成人一区二区三区| 欧美精品一区二区三区四区 | 亚洲精品视频观看| 亚洲精品一二三四区| 亚洲一区视频在线| 日本v片在线高清不卡在线观看| 青青草成人在线观看| 美女视频黄久久| 国产一区二区日韩精品| 国产91综合网| 日本高清视频一区二区| 制服丝袜成人动漫| 亚洲精品一区二区三区99| 国产精品国产馆在线真实露脸| 亚洲天堂av一区| 亚洲123区在线观看| 麻豆成人在线观看| www.日本不卡| 欧美美女黄视频| 国产亚洲人成网站| 亚洲欧美激情在线| 蜜桃在线一区二区三区| 大白屁股一区二区视频| 欧美日韩三级一区二区| 久久久影院官网| 亚洲综合av网| 国产黄人亚洲片| 欧美日韩激情一区二区| 久久亚洲二区三区| 亚洲在线免费播放| 国内精品伊人久久久久影院对白| av电影在线观看一区| 欧美一级二级在线观看| 国产精品青草综合久久久久99| 一区二区三区 在线观看视频| 久久精品国产秦先生| 色哟哟一区二区在线观看| 欧美一区二区三区在线观看| 国产精品美日韩| 蜜桃视频一区二区三区在线观看| 成人免费看的视频| 日韩欧美一级特黄在线播放| 国产精品久久久久久久蜜臀| 久久精品久久99精品久久| 91在线一区二区| 国产亚洲婷婷免费| 男男视频亚洲欧美| 欧美日韩一区二区三区在线| 国产区在线观看成人精品| 三级影片在线观看欧美日韩一区二区| 国产91高潮流白浆在线麻豆| 欧美一区二区在线观看| 亚洲精品中文在线影院| 夫妻av一区二区| 精品免费视频一区二区| 三级一区在线视频先锋| 欧美综合天天夜夜久久| 成人欧美一区二区三区在线播放| 蜜桃视频一区二区三区在线观看 | 一本久久a久久精品亚洲| 久久综合狠狠综合久久综合88| 一级女性全黄久久生活片免费| 国产不卡免费视频| 精品国产乱码久久久久久闺蜜 | 国产99久久久国产精品免费看| 欧美一卡二卡在线观看| 五月天激情小说综合| 欧美中文字幕一区| 依依成人精品视频| 色屁屁一区二区| 国产精品蜜臀在线观看| 国产成人精品亚洲777人妖| 精品久久99ma| 精一区二区三区| 日韩欧美亚洲国产另类| 裸体一区二区三区| 日韩欧美aaaaaa| 国产综合色产在线精品| 欧美成人a在线|