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

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

?? ogr_srs_proj4.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
    }

    else if( EQUAL(pszProj,"krovak") )
    {
        SetKrovak( OSR_GDV( papszNV, "lat_0", 0.0 ), 
                   OSR_GDV( papszNV, "lon_0", 0.0 ), 
                   OSR_GDV( papszNV, "alpha", 0.0 ), 
                   0.0, // pseudo_standard_parallel_1
                   OSR_GDV( papszNV, "k", 1.0 ), 
                   OSR_GDV( papszNV, "x_0", 0.0 ), 
                   OSR_GDV( papszNV, "y_0", 0.0 ) );
    }

    else if( EQUAL(pszProj,"tpeqd") )
    {
        SetTPED( OSR_GDV( papszNV, "lat_1", 0.0 ), 
                 OSR_GDV( papszNV, "lon_1", 0.0 ), 
                 OSR_GDV( papszNV, "lat_2", 0.0 ), 
                 OSR_GDV( papszNV, "lon_2", 0.0 ), 
                 OSR_GDV( papszNV, "x_0", 0.0 ), 
                 OSR_GDV( papszNV, "y_0", 0.0 ) );
    }

    else
    {
        CPLDebug( "OGR_PROJ4", "Unsupported projection: %s", pszProj );
        CSLDestroy( papszNV );
        return OGRERR_CORRUPT_DATA;
    }

/* -------------------------------------------------------------------- */
/*      Try to translate the datum.                                     */
/* -------------------------------------------------------------------- */
    const char *pszValue;
    int  bFullyDefined = FALSE;

    pszValue = CSLFetchNameValue(papszNV, "datum");
    if( pszValue == NULL )
    {
        /* do nothing */
    }
    else if( (EQUAL(pszValue,"NAD27") || EQUAL(pszValue,"NAD83")
              || EQUAL(pszValue,"WGS84") || EQUAL(pszValue,"WGS72"))
             && dfFromGreenwich == 0.0 )
    {
        SetWellKnownGeogCS( pszValue );
        bFullyDefined = TRUE;
    }
    else if( EQUAL(pszValue,"potsdam") )
    {
        OGRSpatialReference oGCS;
        oGCS.importFromEPSG( 4314 );
        CopyGeogCSFrom( &oGCS );
        bFullyDefined = TRUE;
    }
    else if( EQUAL(pszValue,"nzgd49") )
    {
        OGRSpatialReference oGCS;
        oGCS.importFromEPSG( 4272 );
        CopyGeogCSFrom( &oGCS );
        bFullyDefined = TRUE;
    }
    else
    {
        /* we don't recognise the datum, and ignore it */
    }

/* -------------------------------------------------------------------- */
/*      Set the ellipsoid information.                                   */
/* -------------------------------------------------------------------- */
    double dfSemiMajor, dfInvFlattening, dfSemiMinor;

    pszValue = CSLFetchNameValue(papszNV, "ellps");
    if( pszValue != NULL && !bFullyDefined )
    {
        for( i = 0; ogr_pj_ellps[i] != NULL; i += 4 )
        {
            if( !EQUAL(ogr_pj_ellps[i],pszValue) )
                continue;

            CPLAssert( EQUALN(ogr_pj_ellps[i+1],"a=",2) );
            
            dfSemiMajor = atof(ogr_pj_ellps[i+1]+2);
            if( EQUALN(ogr_pj_ellps[i+2],"rf=",3) )
                dfInvFlattening = atof(ogr_pj_ellps[i+2]+3);
            else
            {
                CPLAssert( EQUALN(ogr_pj_ellps[i+2],"b=",2) );
                dfSemiMinor = atof(ogr_pj_ellps[i+2]+2);
                
                if( ABS(dfSemiMajor/dfSemiMinor) - 1.0 < 0.0000000000001 )
                    dfInvFlattening = 0.0;
                else
                    dfInvFlattening = -1.0 / (dfSemiMinor/dfSemiMajor - 1.0);
            }
            
            SetGeogCS( ogr_pj_ellps[i+3], "unknown", ogr_pj_ellps[i], 
                       dfSemiMajor, dfInvFlattening,
                       pszPM, dfFromGreenwich );

            bFullyDefined = TRUE;
            break;
        }
    }

    if( !bFullyDefined )
    {
        dfSemiMajor = OSR_GDV( papszNV, "a", 0.0 );
        if( dfSemiMajor == 0.0 )
        {
            dfSemiMajor = OSR_GDV( papszNV, "R", 0.0 );
            if( dfSemiMajor != 0.0 )
            {
                dfSemiMinor = -1.0;
                dfInvFlattening = 0.0;
            }
            else
            {
                CPLDebug( "OGR_PROJ4", "Can't find ellipse definition, default to WGS84:\n%s", 
                          pszProj4 );
                
                dfSemiMajor = SRS_WGS84_SEMIMAJOR;
                dfSemiMinor = -1.0;
                dfInvFlattening = SRS_WGS84_INVFLATTENING;
            }
        }
        else
        {
            dfSemiMinor = OSR_GDV( papszNV, "b", -1.0 );
            dfInvFlattening = OSR_GDV( papszNV, "rf", -1.0 );
        }
        
        if( dfSemiMinor == -1.0 && dfInvFlattening == -1.0 )
        {
            CPLDebug( "OGR_PROJ4", "Can't find ellipse definition in:\n%s", 
                      pszProj4 );
            CSLDestroy( papszNV );
            return OGRERR_UNSUPPORTED_SRS;
        }

        if( dfInvFlattening == -1.0 )
        {
            if( ABS(dfSemiMajor/dfSemiMinor) - 1.0 < 0.0000000000001 )
                dfInvFlattening = 0.0;
            else
                dfInvFlattening = -1.0 / (dfSemiMinor/dfSemiMajor - 1.0);
        }
        
        SetGeogCS( "unnamed ellipse", "unknown", "unnamed",
                   dfSemiMajor, dfInvFlattening,
                   pszPM, dfFromGreenwich );
        
        bFullyDefined = TRUE;
    }

/* -------------------------------------------------------------------- */
/*      Handle TOWGS84 conversion.                                      */
/* -------------------------------------------------------------------- */
    pszValue = CSLFetchNameValue(papszNV, "towgs84");
    if(pszValue!=NULL)
    {
        char **papszToWGS84 = CSLTokenizeStringComplex( pszValue, ",", 
                                                        FALSE, TRUE );

        if( CSLCount(papszToWGS84) >= 7 )
            SetTOWGS84( atof(papszToWGS84[0]), 
                        atof(papszToWGS84[1]), 
                        atof(papszToWGS84[2]), 
                        atof(papszToWGS84[3]), 
                        atof(papszToWGS84[4]), 
                        atof(papszToWGS84[5]), 
                        atof(papszToWGS84[6]) );
        else if( CSLCount(papszToWGS84) >= 3 )
            SetTOWGS84( atof(papszToWGS84[0]), 
                        atof(papszToWGS84[1]), 
                        atof(papszToWGS84[2]) );
        else
            CPLError( CE_Warning, CPLE_AppDefined, 
                      "Seemingly corrupt +towgs84 option (%s), ignoring.", 
                      pszValue );
                        
        CSLDestroy(papszToWGS84);
    }

/* -------------------------------------------------------------------- */
/*      Linear units translation                                        */
/* -------------------------------------------------------------------- */
    if( IsProjected() || IsLocal() )
    {
        pszValue = CSLFetchNameValue(papszNV, "to_meter");

        if( pszValue != NULL && atof(pszValue) > 0.0 )
        {
            SetLinearUnits( "unknown", atof(pszValue) );
        }
        else if( (pszValue = CSLFetchNameValue(papszNV, "units")) != NULL )
        {
            if( EQUAL(pszValue,"meter" ) || EQUAL(pszValue,"m") )
                SetLinearUnits( SRS_UL_METER, 1.0 );
            else if( EQUAL(pszValue,"us-ft" ) )
                SetLinearUnits( SRS_UL_US_FOOT, atof(SRS_UL_US_FOOT_CONV) );
            else if( EQUAL(pszValue,"ft" ) )
                SetLinearUnits( SRS_UL_FOOT, atof(SRS_UL_FOOT_CONV) );
            else if( EQUAL(pszValue,"yd" ) )
                SetLinearUnits( pszValue, 0.9144 );
            else if( EQUAL(pszValue,"us-yd" ) )
                SetLinearUnits( pszValue, 0.914401828803658 );
            else // This case is untranslatable.  Should add all proj.4 unts
                SetLinearUnits( pszValue, 1.0 );
        }
    }

/* -------------------------------------------------------------------- */
/*      Adjust linear parameters into PROJCS units if the linear        */
/*      units are not meters.                                           */
/* -------------------------------------------------------------------- */
    if( GetLinearUnits() != 1.0 && IsProjected() )
    {
        OGR_SRSNode *poPROJCS = GetAttrNode( "PROJCS" );
        int  i;

        for( i = 0; i < poPROJCS->GetChildCount(); i++ )
        {
            OGR_SRSNode *poParm = poPROJCS->GetChild(i);
            if( !EQUAL(poParm->GetValue(),"PARAMETER") 
                || poParm->GetChildCount() != 2 )
                continue;

            const char *pszParmName = poParm->GetChild(0)->GetValue();

            if( IsLinearParameter(pszParmName) )
                SetNormProjParm(pszParmName,GetProjParm(pszParmName));
        }        
    }


/* -------------------------------------------------------------------- */
/*      do we want to insert a PROJ.4 EXTENSION item?                   */
/* -------------------------------------------------------------------- */
    if( strstr(pszProj4,"wktext") != NULL )
        SetExtension( GetRoot()->GetValue(), "PROJ4", pszProj4 );
        
    CSLDestroy( papszNV );
    
    return OGRERR_NONE;
}


/************************************************************************/
/*                          OSRExportToProj4()                          */
/************************************************************************/

OGRErr CPL_STDCALL OSRExportToProj4( OGRSpatialReferenceH hSRS, 
                                     char ** ppszReturn )

{
    *ppszReturn = NULL;

    return ((OGRSpatialReference *) hSRS)->exportToProj4( ppszReturn );
}

/************************************************************************/
/*                           exportToProj4()                            */
/************************************************************************/

/**
 * Export coordinate system in PROJ.4 format.
 *
 * Converts the loaded coordinate reference system into PROJ.4 format
 * to the extent possible.  The string returned in ppszProj4 should be
 * deallocated by the caller with CPLFree() when no longer needed.
 *
 * LOCAL_CS coordinate systems are not translatable.  An empty string
 * will be returned along with OGRERR_NONE.  
 *
 * This method is the equivelent of the C function OSRExportToProj4().
 *
 * @param ppszProj4 pointer to which dynamically allocated PROJ.4 definition 
 * will be assigned. 
 *
 * @return OGRERR_NONE on success or an error code on failure. 
 */

OGRErr OGRSpatialReference::exportToProj4( char ** ppszProj4 ) const

{
    char        szProj4[512];
    const char *pszProjection = GetAttrValue("PROJECTION");

    szProj4[0] = '\0';

    if( GetRoot() == NULL )
    {
        *ppszProj4 = CPLStrdup("");
        CPLError( CE_Failure, CPLE_NotSupported,
                  "No translation an empty SRS to PROJ.4 format is known.", 
                  pszProjection );
        return OGRERR_UNSUPPORTED_SRS;
    }

/* -------------------------------------------------------------------- */
/*      Do we have a PROJ.4 override definition?                        */
/* -------------------------------------------------------------------- */
    const char *pszPredefProj4 = GetExtension( GetRoot()->GetValue(), 
                                               "PROJ4", NULL );
    if( pszPredefProj4 != NULL )
    {
        *ppszProj4 = CPLStrdup( pszPredefProj4 );
        return OGRERR_NONE;
    }

/* -------------------------------------------------------------------- */
/*      Get the prime meridian info.                                    */
/* -------------------------------------------------------------------- */
    const OGR_SRSNode *poPRIMEM = GetAttrNode( "PRIMEM" );
    double dfFromGreenwich = 0.0;

    if( poPRIMEM != NULL && poPRIMEM->GetChildCount() >= 2 
        && atof(poPRIMEM->GetChild(1)->GetValue()) != 0.0 )
    {
        dfFromGreenwich = atof(poPRIMEM->GetChild(1)->GetValue());
    }

/* ==================================================================== */
/*      Handle the projection definition.                               */
/* ==================================================================== */

    if( pszProjection == NULL && IsGeographic() )
    {
        sprintf( szProj4+strlen(szProj4), "+proj=longlat " );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产乱码久久久久久浪潮 | 欧美电影影音先锋| 亚洲欧美乱综合| 色老综合老女人久久久| 亚洲人成人一区二区在线观看| 91小视频在线观看| 亚洲欧洲www| 欧美日韩免费观看一区二区三区| 亚洲国产wwwccc36天堂| 日韩一区二区三| 国产美女久久久久| 国产精品久久久久桃色tv| 成人爽a毛片一区二区免费| 亚洲欧洲国产日韩| 欧美日韩精品欧美日韩精品| 久久精工是国产品牌吗| 国产欧美视频一区二区| 99精品视频在线免费观看| 一区二区三区蜜桃| 日韩一区二区麻豆国产| 成人午夜免费av| 一区二区三区高清| 日韩欧美国产小视频| 国产91清纯白嫩初高中在线观看 | 亚洲日本欧美天堂| 欧美日韩国产区一| 国产精品综合网| 一区二区三区不卡视频| 日韩一级视频免费观看在线| 成人美女视频在线看| 亚洲成人资源网| 国产欧美日产一区| 欧美日韩国产首页在线观看| 国产精品正在播放| 午夜精品久久久久久久久| 久久久久88色偷偷免费| 色av成人天堂桃色av| 激情国产一区二区| 亚洲香肠在线观看| 久久久噜噜噜久久人人看| 欧美亚洲综合久久| 国产成人av自拍| 蜜桃视频第一区免费观看| 国产精品全国免费观看高清| 91精品国产综合久久久久久| 99久久精品国产一区| 久久精品国产亚洲aⅴ| 亚洲主播在线播放| 国产精品乱码一区二区三区软件| 欧美一区二区成人6969| 91麻豆免费视频| 国产大片一区二区| 美女视频一区在线观看| 亚洲国产精品久久人人爱 | 欧美在线综合视频| 成人永久看片免费视频天堂| 七七婷婷婷婷精品国产| 亚洲aⅴ怡春院| 亚洲另类在线一区| 中文字幕av不卡| 精品国产91洋老外米糕| 欧美精品日韩综合在线| 色婷婷香蕉在线一区二区| av不卡一区二区三区| 国产精品99久久不卡二区| 久久成人综合网| 日韩av电影天堂| 五月综合激情网| 亚洲国产精品欧美一二99| 一区二区三区在线视频免费| 亚洲色图在线播放| 亚洲少妇最新在线视频| 日韩美女久久久| 1区2区3区精品视频| 国产精品三级在线观看| 国产日韩v精品一区二区| 久久精品人人做人人综合| 精品av综合导航| 久久久精品免费免费| 国产视频亚洲色图| 亚洲国产成人自拍| 国产精品久久三区| 亚洲视频一区在线| 亚洲一区在线观看网站| 午夜亚洲福利老司机| 日韩电影在线一区| 另类小说视频一区二区| 国产乱码精品1区2区3区| 国产a久久麻豆| 91免费视频网址| 欧美日韩国产一二三| 日韩色在线观看| 久久九九全国免费| 亚洲欧美在线另类| 亚洲在线观看免费| 性做久久久久久久久| 国产精品久久夜| 一区在线中文字幕| 亚洲女人的天堂| 亚洲第一二三四区| 日韩福利视频导航| 日韩精品欧美精品| 亚洲一区二区综合| 亚洲大片免费看| 日韩成人精品视频| 成人一道本在线| 91尤物视频在线观看| 欧洲色大大久久| 欧美色图免费看| 欧美偷拍一区二区| 2024国产精品| 中文字幕精品—区二区四季| 国产精品久久久久久亚洲伦 | 亚洲一区自拍偷拍| 午夜精品久久久久久久久久久| 韩国女主播成人在线观看| 国产剧情一区二区| 91免费视频大全| 欧美日韩欧美一区二区| 欧美一区二区三区四区视频| 欧美精品123区| 精品成人a区在线观看| 国产精品色呦呦| 亚洲综合色视频| 裸体一区二区三区| 色呦呦国产精品| 欧美一区二区在线看| 国产日产欧美精品一区二区三区| 亚洲精品国产高清久久伦理二区| 亚洲影视在线播放| 久久成人羞羞网站| 一本在线高清不卡dvd| 日韩欧美一区在线| 国产精品网友自拍| 天堂成人免费av电影一区| 波多野结衣的一区二区三区| 精品视频在线免费| 久久午夜色播影院免费高清| 怡红院av一区二区三区| 亚洲成人免费观看| 99久久免费视频.com| 这里只有精品免费| 日韩美女视频一区| 精品一区二区三区日韩| 91一区一区三区| 日本一区二区三区国色天香| 天天av天天翘天天综合网 | 国产在线视频精品一区| 欧美人与禽zozo性伦| 中文字幕巨乱亚洲| 蜜桃精品在线观看| 一本大道久久a久久精品综合| 日韩免费性生活视频播放| 天堂蜜桃一区二区三区| 成人av在线资源| 久久夜色精品国产噜噜av| 一级特黄大欧美久久久| 成人av动漫网站| 欧美国产欧美综合| 久久成人免费网| 欧美视频在线播放| 国产精品久久久久一区| 日本欧美肥老太交大片| 欧美精品日日鲁夜夜添| 一区二区理论电影在线观看| 国产二区国产一区在线观看| 欧美va亚洲va| 亚洲国产高清不卡| 99久久99久久综合| 国产亚洲精品超碰| 国内久久精品视频| 欧美一区国产二区| 黑人巨大精品欧美一区| 91精品国产全国免费观看| 伊人一区二区三区| 99精品国产一区二区三区不卡| 日韩精品在线网站| 国产中文字幕一区| 久久综合色之久久综合| 麻豆91在线看| 日韩精品专区在线影院观看| 婷婷一区二区三区| 色琪琪一区二区三区亚洲区| 国产三级精品三级| 国模无码大尺度一区二区三区| 欧美大片顶级少妇| 寂寞少妇一区二区三区| 欧美国产乱子伦| av资源网一区| 亚洲日本欧美天堂| av中文字幕不卡| 午夜日韩在线观看| 欧美日韩一级黄| 午夜视频久久久久久| 91精品国产一区二区三区香蕉| 精品一区二区国语对白| 久久久久久综合| 成人激情文学综合网| 国产精品大尺度| 日韩一二三四区|