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

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

?? shpopen.c

?? 支持各種柵格圖像和矢量圖像讀取的庫
?? C
?? 第 1 頁 / 共 5 頁
字號:
    ByteCopy( &i32, abyHeader+24, 4 );    if( !bBigEndian ) SwapWord( 4, abyHeader+24 );        if( fseek( psSHP->fpSHX, 0, 0 ) != 0         || fwrite( abyHeader, 100, 1, psSHP->fpSHX ) != 1 )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_OpenFailed,                   "Failure writing .shx header." );#endif        return;    }/* -------------------------------------------------------------------- *//*      Write out the .shx contents.                                    *//* -------------------------------------------------------------------- */    panSHX = (int32 *) malloc(sizeof(int32) * 2 * psSHP->nRecords);    for( i = 0; i < psSHP->nRecords; i++ )    {	panSHX[i*2  ] = psSHP->panRecOffset[i]/2;	panSHX[i*2+1] = psSHP->panRecSize[i]/2;	if( !bBigEndian ) SwapWord( 4, panSHX+i*2 );	if( !bBigEndian ) SwapWord( 4, panSHX+i*2+1 );    }    if( (int)fwrite( panSHX, sizeof(int32)*2, psSHP->nRecords, psSHP->fpSHX )         != psSHP->nRecords )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_OpenFailed,                   "Failure writing .shx contents." );#endif    }    free( panSHX );/* -------------------------------------------------------------------- *//*      Flush to disk.                                                  *//* -------------------------------------------------------------------- */    fflush( psSHP->fpSHP );    fflush( psSHP->fpSHX );}/************************************************************************//*                              shpopen()                               *//*                                                                      *//*      Open the .shp and .shx files based on the basename of the       *//*      files or either file name.                                      *//************************************************************************/   SHPHandle SHPAPI_CALLSHPOpen( const char * pszLayer, const char * pszAccess ){    char		*pszFullname, *pszBasename;    SHPHandle		psSHP;        uchar		*pabyBuf;    int			i;    double		dValue;    /* -------------------------------------------------------------------- *//*      Ensure the access string is one of the legal ones.  We          *//*      ensure the result string indicates binary to avoid common       *//*      problems on Windows.                                            *//* -------------------------------------------------------------------- */    if( strcmp(pszAccess,"rb+") == 0 || strcmp(pszAccess,"r+b") == 0        || strcmp(pszAccess,"r+") == 0 )        pszAccess = "r+b";    else        pszAccess = "rb";    /* -------------------------------------------------------------------- *//*	Establish the byte order on this machine.			*//* -------------------------------------------------------------------- */    i = 1;    if( *((uchar *) &i) == 1 )        bBigEndian = FALSE;    else        bBigEndian = TRUE;/* -------------------------------------------------------------------- *//*	Initialize the info structure.					*//* -------------------------------------------------------------------- */    psSHP = (SHPHandle) calloc(sizeof(SHPInfo),1);    psSHP->bUpdated = FALSE;/* -------------------------------------------------------------------- *//*	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 .shp and .shx files.  Note that files pulled from	*//*	a PC to Unix with upper case filenames won't work!		*//* -------------------------------------------------------------------- */    pszFullname = (char *) malloc(strlen(pszBasename) + 5);    sprintf( pszFullname, "%s.shp", pszBasename );    psSHP->fpSHP = fopen(pszFullname, pszAccess );    if( psSHP->fpSHP == NULL )    {        sprintf( pszFullname, "%s.SHP", pszBasename );        psSHP->fpSHP = fopen(pszFullname, pszAccess );    }        if( psSHP->fpSHP == NULL )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_OpenFailed,                   "Unable to open %s.shp or %s.SHP.",                   pszBasename, pszBasename );#endif        free( psSHP );        free( pszBasename );        free( pszFullname );        return( NULL );    }    sprintf( pszFullname, "%s.shx", pszBasename );    psSHP->fpSHX = fopen(pszFullname, pszAccess );    if( psSHP->fpSHX == NULL )    {        sprintf( pszFullname, "%s.SHX", pszBasename );        psSHP->fpSHX = fopen(pszFullname, pszAccess );    }        if( psSHP->fpSHX == NULL )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_OpenFailed,                   "Unable to open %s.shx or %s.SHX.",                   pszBasename, pszBasename );#endif        fclose( psSHP->fpSHP );        free( psSHP );        free( pszBasename );        free( pszFullname );        return( NULL );    }    free( pszFullname );    free( pszBasename );/* -------------------------------------------------------------------- *//*  Read the file size from the SHP file.				*//* -------------------------------------------------------------------- */    pabyBuf = (uchar *) malloc(100);    fread( pabyBuf, 100, 1, psSHP->fpSHP );    psSHP->nFileSize = (pabyBuf[24] * 256 * 256 * 256			+ pabyBuf[25] * 256 * 256			+ pabyBuf[26] * 256			+ pabyBuf[27]) * 2;/* -------------------------------------------------------------------- *//*  Read SHX file Header info                                           *//* -------------------------------------------------------------------- */    if( fread( pabyBuf, 100, 1, psSHP->fpSHX ) != 1         || pabyBuf[0] != 0         || pabyBuf[1] != 0         || pabyBuf[2] != 0x27         || (pabyBuf[3] != 0x0a && pabyBuf[3] != 0x0d) )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_AppDefined,                   ".shx file is unreadable, or corrupt." );#endif	fclose( psSHP->fpSHP );	fclose( psSHP->fpSHX );	free( psSHP );	return( NULL );    }    psSHP->nRecords = pabyBuf[27] + pabyBuf[26] * 256      + pabyBuf[25] * 256 * 256 + pabyBuf[24] * 256 * 256 * 256;    psSHP->nRecords = (psSHP->nRecords*2 - 100) / 8;    psSHP->nShapeType = pabyBuf[32];    if( psSHP->nRecords < 0 || psSHP->nRecords > 256000000 )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_AppDefined,                   "Record count in .shp header is %d, which seems\n"                  "unreasonable.  Assuming header is corrupt.",                  psSHP->nRecords );#endif	fclose( psSHP->fpSHP );	fclose( psSHP->fpSHX );	free( psSHP );	return( NULL );    }/* -------------------------------------------------------------------- *//*      Read the bounds.                                                *//* -------------------------------------------------------------------- */    if( bBigEndian ) SwapWord( 8, pabyBuf+36 );    memcpy( &dValue, pabyBuf+36, 8 );    psSHP->adBoundsMin[0] = dValue;    if( bBigEndian ) SwapWord( 8, pabyBuf+44 );    memcpy( &dValue, pabyBuf+44, 8 );    psSHP->adBoundsMin[1] = dValue;    if( bBigEndian ) SwapWord( 8, pabyBuf+52 );    memcpy( &dValue, pabyBuf+52, 8 );    psSHP->adBoundsMax[0] = dValue;    if( bBigEndian ) SwapWord( 8, pabyBuf+60 );    memcpy( &dValue, pabyBuf+60, 8 );    psSHP->adBoundsMax[1] = dValue;    if( bBigEndian ) SwapWord( 8, pabyBuf+68 );		/* z */    memcpy( &dValue, pabyBuf+68, 8 );    psSHP->adBoundsMin[2] = dValue;        if( bBigEndian ) SwapWord( 8, pabyBuf+76 );    memcpy( &dValue, pabyBuf+76, 8 );    psSHP->adBoundsMax[2] = dValue;        if( bBigEndian ) SwapWord( 8, pabyBuf+84 );		/* z */    memcpy( &dValue, pabyBuf+84, 8 );    psSHP->adBoundsMin[3] = dValue;    if( bBigEndian ) SwapWord( 8, pabyBuf+92 );    memcpy( &dValue, pabyBuf+92, 8 );    psSHP->adBoundsMax[3] = dValue;    free( pabyBuf );/* -------------------------------------------------------------------- *//*	Read the .shx file to get the offsets to each record in 	*//*	the .shp file.							*//* -------------------------------------------------------------------- */    psSHP->nMaxRecords = psSHP->nRecords;    psSHP->panRecOffset =        (int *) malloc(sizeof(int) * MAX(1,psSHP->nMaxRecords) );    psSHP->panRecSize =        (int *) malloc(sizeof(int) * MAX(1,psSHP->nMaxRecords) );    pabyBuf = (uchar *) malloc(8 * MAX(1,psSHP->nRecords) );    if( (int) fread( pabyBuf, 8, psSHP->nRecords, psSHP->fpSHX ) 			!= psSHP->nRecords )    {#ifdef USE_CPL        CPLError( CE_Failure, CPLE_AppDefined,                   "Failed to read all values for %d records in .shx file.",                  psSHP->nRecords );#endif        /* SHX is short or unreadable for some reason. */	fclose( psSHP->fpSHP );	fclose( psSHP->fpSHX );        free( psSHP->panRecOffset );        free( psSHP->panRecSize );	free( psSHP );	return( NULL );    }    for( i = 0; i < psSHP->nRecords; i++ )    {	int32		nOffset, nLength;	memcpy( &nOffset, pabyBuf + i * 8, 4 );	if( !bBigEndian ) SwapWord( 4, &nOffset );	memcpy( &nLength, pabyBuf + i * 8 + 4, 4 );	if( !bBigEndian ) SwapWord( 4, &nLength );	psSHP->panRecOffset[i] = nOffset*2;	psSHP->panRecSize[i] = nLength*2;    }    free( pabyBuf );    return( psSHP );}/************************************************************************//*                              SHPClose()                              *//*								       	*//*	Close the .shp and .shx files.					*//************************************************************************/void SHPAPI_CALLSHPClose(SHPHandle psSHP ){    if( psSHP == NULL )        return;/* -------------------------------------------------------------------- *//*	Update the header if we have modified anything.			*//* -------------------------------------------------------------------- */    if( psSHP->bUpdated )	SHPWriteHeader( psSHP );/* -------------------------------------------------------------------- *//*      Free all resources, and close files.                            *//* -------------------------------------------------------------------- */    free( psSHP->panRecOffset );    free( psSHP->panRecSize );    fclose( psSHP->fpSHX );    fclose( psSHP->fpSHP );    if( psSHP->pabyRec != NULL )    {        free( psSHP->pabyRec );    }        free( psSHP );}/************************************************************************//*                             SHPGetInfo()                             *//*                                                                      *//*      Fetch general information about the shape file.                 *//************************************************************************/void SHPAPI_CALLSHPGetInfo(SHPHandle psSHP, int * pnEntities, int * pnShapeType,           double * padfMinBound, double * padfMaxBound ){    int		i;    if( psSHP == NULL )        return;        if( pnEntities != NULL )        *pnEntities = psSHP->nRecords;    if( pnShapeType != NULL )        *pnShapeType = psSHP->nShapeType;    for( i = 0; i < 4; i++ )    {        if( padfMinBound != NULL )            padfMinBound[i] = psSHP->adBoundsMin[i];        if( padfMaxBound != NULL )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级日韩在线| 久久综合久久综合亚洲| 884aa四虎影成人精品一区| 久久久777精品电影网影网| 一区二区三区在线观看国产| 免播放器亚洲一区| 一本在线高清不卡dvd| 精品国产亚洲在线| 香蕉影视欧美成人| 91女厕偷拍女厕偷拍高清| 日韩久久精品一区| 日本系列欧美系列| 在线视频你懂得一区| 国产精品卡一卡二| 国产酒店精品激情| 欧美一区二区三区免费| 亚洲最新视频在线观看| 成人午夜激情片| 精品国产99国产精品| 日韩专区一卡二卡| 欧美二区在线观看| 亚洲风情在线资源站| 色综合色狠狠天天综合色| 日本一区二区综合亚洲| 国产成人午夜精品5599| 日韩午夜三级在线| 日本伊人精品一区二区三区观看方式| 色一区在线观看| 亚洲男人的天堂在线观看| 成人蜜臀av电影| 亚洲国产精品t66y| 风间由美性色一区二区三区| 久久久久国产精品厨房| 国产美女娇喘av呻吟久久| 久久综合九色欧美综合狠狠| 一区二区三区视频在线看| 色综合久久六月婷婷中文字幕| 中文字幕在线观看不卡| 成人国产亚洲欧美成人综合网| 久久人人爽爽爽人久久久| 精品一区二区av| 欧美激情一区二区在线| 成人在线一区二区三区| 中文字幕久久午夜不卡| 99久久99久久精品国产片果冻| 亚洲日本在线a| 欧美无砖专区一中文字| 婷婷综合在线观看| 精品国产一区二区在线观看| 国产一区欧美日韩| 国产精品女主播在线观看| 99国产欧美久久久精品| 亚洲精品视频在线| 欧美一区二区在线免费观看| 久久国产福利国产秒拍| 国产女主播视频一区二区| av不卡在线播放| 亚洲18色成人| ww亚洲ww在线观看国产| www.欧美日韩国产在线| 亚洲国产视频直播| 久久久久久夜精品精品免费| 不卡视频一二三| 性做久久久久久免费观看欧美| 欧美一区二区国产| 成人免费视频一区| 天堂在线一区二区| 中文在线一区二区| 欧美日韩免费不卡视频一区二区三区| 日韩av中文字幕一区二区三区| 久久一二三国产| 色爱区综合激月婷婷| 久久99久久久欧美国产| 亚洲欧美另类久久久精品2019| 欧美精品丝袜中出| 国产成人av自拍| 午夜精品在线视频一区| 亚洲国产成人一区二区三区| 欧美午夜精品久久久久久超碰| 国产做a爰片久久毛片| 亚洲欧美综合色| 欧美这里有精品| 亚洲欧洲美洲综合色网| 日本最新不卡在线| 国产成人av影院| 麻豆精品久久久| 久国产精品韩国三级视频| 国产日韩精品一区| 欧美午夜影院一区| 99在线热播精品免费| 免费成人性网站| 一区二区三区在线视频免费| 日韩一区二区三区四区| 91久久精品日日躁夜夜躁欧美| 捆绑调教一区二区三区| 欧美一区二区成人6969| 91网站黄www| 国产自产v一区二区三区c| 丝瓜av网站精品一区二区| 国产精品少妇自拍| 久久综合一区二区| 91精品国产91久久综合桃花 | 成人黄色电影在线 | 日韩欧美的一区| 91免费版在线| 色综合视频在线观看| 国产成人av一区| 国产一区二区三区在线观看免费视频 | 成人深夜视频在线观看| 国产一区二区免费视频| 免费看欧美女人艹b| 日韩电影在线一区| 亚洲图片自拍偷拍| 亚洲国产欧美另类丝袜| 一区二区三区四区在线免费观看| 亚洲私人影院在线观看| 亚洲欧美综合在线精品| 亚洲桃色在线一区| 亚洲免费在线看| 一区二区三区高清不卡| 亚洲精品国产精华液| 亚洲三级在线播放| 亚洲一区精品在线| 亚洲成人精品影院| 日本vs亚洲vs韩国一区三区二区| 亚洲永久精品大片| 天堂av在线一区| 美女在线观看视频一区二区| 久久99国内精品| 国产一区二区三区在线观看免费视频| 国产一区二区精品在线观看| 国产精品1区二区.| 成人高清av在线| 一本色道亚洲精品aⅴ| 欧美欧美欧美欧美| 91精品国产综合久久国产大片| 69堂亚洲精品首页| 久久美女艺术照精彩视频福利播放| 国产亚洲一区二区三区四区| 国产精品美女久久久久久久久久久| 一区在线播放视频| 6080yy午夜一二三区久久| 欧美日韩激情在线| 欧美三级一区二区| 欧美日韩dvd在线观看| 久久午夜免费电影| 中文字幕一区二区三区视频| 在线一区二区三区四区| 久久伊人蜜桃av一区二区| 美腿丝袜亚洲三区| 国产一区二区三区四区在线观看| 粉嫩av亚洲一区二区图片| 91在线视频播放地址| 欧美高清www午色夜在线视频| 国产亚洲欧美中文| 亚洲午夜激情网页| 国产精品77777| 欧美精品亚洲二区| 国产精品久久久久aaaa樱花| 日韩av一区二区在线影视| 国产精品一区在线观看乱码| 欧美专区在线观看一区| 精品国产一区a| 亚洲一二三四在线观看| 国产精品1区二区.| 91精品黄色片免费大全| 亚洲日本韩国一区| 国产一区二区三区免费看| 在线一区二区三区四区五区| 国产亚洲一区二区三区四区| 亚洲午夜精品17c| eeuss鲁片一区二区三区在线看| 欧美精品日韩一区| 亚洲欧美综合网| 国产一二精品视频| 欧美一区二区三区免费在线看 | 天天色天天爱天天射综合| 丁香啪啪综合成人亚洲小说 | 日韩av一二三| 欧亚洲嫩模精品一区三区| 国产精品成人免费| 国产一区二区三区四| 日韩一二三四区| 亚洲第一激情av| 在线精品视频免费播放| 亚洲三级理论片| 激情图区综合网| 日韩欧美国产麻豆| 免费观看在线综合| 欧美日韩一区二区不卡| 亚洲色图欧洲色图婷婷| 成人久久久精品乱码一区二区三区| 欧美一级日韩不卡播放免费| 图片区小说区国产精品视频| 色狠狠色狠狠综合| 樱桃视频在线观看一区| 色先锋aa成人| 亚洲精品国产成人久久av盗摄| 99视频在线精品| 曰韩精品一区二区|