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

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

?? ogr_srs_xml.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
/*      Add the parameter value itself.                                 */
/* -------------------------------------------------------------------- */
    double dfParmValue
        = poSRS->GetNormProjParm( pszWKTName, dfDefault, NULL );
        
    CPLCreateXMLNode( psValue, CXT_Text, 
                      CPLSPrintf( "%.16g", dfParmValue ) );

/* -------------------------------------------------------------------- */
/*      Add the valueOfParameter.                                       */
/* -------------------------------------------------------------------- */
    AddValueIDWithURN( psNode, "gml:valueOfParameter", "EPSG", "parameter", 
                       nParameterID );
}

/************************************************************************/
/*                              addAxis()                               */
/*                                                                      */
/*      Added the <usesAxis> element and down.                          */
/************************************************************************/

static CPLXMLNode *addAxis( CPLXMLNode *psXMLParent, 
                            const char *pszAxis, // "Lat", "Long", "E" or "N"
                            const OGR_SRSNode * /* poUnitsSrc */ )

{
    CPLXMLNode *psAxisXML;

    psAxisXML = 
        CPLCreateXMLNode( 
            CPLCreateXMLNode( psXMLParent, CXT_Element, "gml:usesAxis" ),
            CXT_Element, "gml:CoordinateSystemAxis" );
    addGMLId( psAxisXML );

    if( EQUAL(pszAxis,"Lat") )
    {
        CPLCreateXMLNode( 
            CPLCreateXMLNode( psAxisXML, CXT_Attribute, "gml:uom" ),
            CXT_Text, "urn:ogc:def:uom:EPSG::9102" );

        CPLCreateXMLElementAndValue( psAxisXML, "gml:name",
                                     "Geodetic latitude" );
        addAuthorityIDBlock( psAxisXML, "gml:axisID", "EPSG", "axis", 9901 );
        CPLCreateXMLElementAndValue( psAxisXML, "gml:axisAbbrev", "Lat" );
        CPLCreateXMLElementAndValue( psAxisXML, "gml:axisDirection", "north" );
    }
    else if( EQUAL(pszAxis,"Long") )
    {
        CPLCreateXMLNode( 
            CPLCreateXMLNode( psAxisXML, CXT_Attribute, "gml:uom" ),
            CXT_Text, "urn:ogc:def:uom:EPSG::9102" );

        CPLCreateXMLElementAndValue( psAxisXML, "gml:name",
                                     "Geodetic longitude" );
        addAuthorityIDBlock( psAxisXML, "gml:axisID", "EPSG", "axis", 9902 );
        CPLCreateXMLElementAndValue( psAxisXML, "gml:axisAbbrev", "Lon" );
        CPLCreateXMLElementAndValue( psAxisXML, "gml:axisDirection", "east" );
    }
    else if( EQUAL(pszAxis,"E") )
    {
        CPLCreateXMLNode( 
            CPLCreateXMLNode( psAxisXML, CXT_Attribute, "gml:uom" ),
            CXT_Text, "urn:ogc:def:uom:EPSG::9001" );

        CPLCreateXMLElementAndValue( psAxisXML, "gml:name", "Easting" );
        addAuthorityIDBlock( psAxisXML, "gml:axisID", "EPSG", "axis", 9906 );
        CPLCreateXMLElementAndValue( psAxisXML, "gml:axisAbbrev", "E" );
        CPLCreateXMLElementAndValue( psAxisXML, "gml:axisDirection", "east" );
    }
    else if( EQUAL(pszAxis,"N") )
    {
        CPLCreateXMLNode( 
            CPLCreateXMLNode( psAxisXML, CXT_Attribute, "gml:uom" ),
            CXT_Text, "urn:ogc:def:uom:EPSG::9001" );

        CPLCreateXMLElementAndValue( psAxisXML, "gml:name", "Northing" );
        addAuthorityIDBlock( psAxisXML, "gml:axisID", "EPSG", "axis", 9907 );
        CPLCreateXMLElementAndValue( psAxisXML, "gml:axisAbbrev", "N" );
        CPLCreateXMLElementAndValue( psAxisXML, "gml:axisDirection", "north" );
    }
    else
    {
        CPLAssert( FALSE );
    }

    return psAxisXML;
}

/************************************************************************/
/*                         exportGeogCSToXML()                          */
/************************************************************************/

static CPLXMLNode *exportGeogCSToXML( const OGRSpatialReference *poSRS )

{
    CPLXMLNode  *psGCS_XML;
    const OGR_SRSNode *poGeogCS = poSRS->GetAttrNode( "GEOGCS" );

    if( poGeogCS == NULL )
        return NULL;
    
/* -------------------------------------------------------------------- */
/*      Establish initial infrastructure.                               */
/* -------------------------------------------------------------------- */
    psGCS_XML = CPLCreateXMLNode( NULL, CXT_Element, "gml:GeographicCRS" );
    addGMLId( psGCS_XML );
    
/* -------------------------------------------------------------------- */
/*      Attach symbolic name (srsName).                                 */
/* -------------------------------------------------------------------- */
    CPLCreateXMLElementAndValue( psGCS_XML, "gml:srsName", 
                                 poGeogCS->GetChild(0)->GetValue() );

/* -------------------------------------------------------------------- */
/*      Does the overall coordinate system have an authority?  If so    */
/*      attach as an identification section.                            */
/* -------------------------------------------------------------------- */
    exportAuthorityToXML( poGeogCS, "gml:srsID", psGCS_XML, "crs" );

/* -------------------------------------------------------------------- */
/*      Insert a big whack of fixed stuff defining the                  */
/*      ellipsoidalCS.  Basically this defines the axes and their       */
/*      units.                                                          */
/* -------------------------------------------------------------------- */
    CPLXMLNode *psECS;

    psECS = CPLCreateXMLNode( 
        CPLCreateXMLNode( psGCS_XML, CXT_Element, "gml:usesEllipsoidalCS" ),
        CXT_Element, "gml:EllipsoidalCS" );

    addGMLId( psECS  );

    CPLCreateXMLElementAndValue( psECS, "gml:csName", "ellipsoidal" );

    addAuthorityIDBlock( psECS, "gml:csID", "EPSG", "cs", 6402 );

    addAxis( psECS, "Lat", NULL );
    addAxis( psECS, "Long", NULL );

/* -------------------------------------------------------------------- */
/*      Start with the datum.                                           */
/* -------------------------------------------------------------------- */
    const OGR_SRSNode    *poDatum = poGeogCS->GetNode( "DATUM" );
    CPLXMLNode     *psDatumXML;

    if( poDatum == NULL )
    {
        CPLDestroyXMLNode( psGCS_XML );
        return NULL;
    }

    psDatumXML = CPLCreateXMLNode( 
        CPLCreateXMLNode( psGCS_XML, CXT_Element, "gml:usesGeodeticDatum" ),
        CXT_Element, "gml:GeodeticDatum" );
    
    addGMLId( psDatumXML );

/* -------------------------------------------------------------------- */
/*      Set the datumName.                                              */
/* -------------------------------------------------------------------- */
    CPLCreateXMLElementAndValue( psDatumXML, "gml:datumName", 
                                 poDatum->GetChild(0)->GetValue() );

/* -------------------------------------------------------------------- */
/*      Set authority id info if available.                             */
/* -------------------------------------------------------------------- */
    exportAuthorityToXML( poDatum, "gml:datumID", psDatumXML, "datum" );

/* -------------------------------------------------------------------- */
/*      Setup prime meridian information.                               */
/* -------------------------------------------------------------------- */
    const OGR_SRSNode *poPMNode = poGeogCS->GetNode( "PRIMEM" );
    CPLXMLNode *psPM;
    char *pszPMName = "Greenwich";
    double dfPMOffset = poSRS->GetPrimeMeridian( &pszPMName );

    psPM = CPLCreateXMLNode( 
        CPLCreateXMLNode( psDatumXML, CXT_Element, "gml:usesPrimeMeridian" ),
        CXT_Element, "gml:PrimeMeridian" );

    addGMLId( psPM );

    CPLCreateXMLElementAndValue( psPM, "gml:meridianName", pszPMName );

    if( poPMNode )
        exportAuthorityToXML( poPMNode, "gml:meridianID", psPM, "meridian" );

    CPLXMLNode *psAngle;

    psAngle = 
        CPLCreateXMLNode( 
            CPLCreateXMLNode( psPM, CXT_Element, "gml:greenwichLongitude" ),
            CXT_Element, "gml:angle" );
    
    CPLCreateXMLNode( CPLCreateXMLNode( psAngle, CXT_Attribute, "gml:uom" ),
                      CXT_Text, "urn:ogc:def:uom:EPSG::9102" );

    CPLCreateXMLNode( psAngle, CXT_Text, CPLSPrintf( "%.16g", dfPMOffset ) );

/* -------------------------------------------------------------------- */
/*      Translate the ellipsoid.                                        */
/* -------------------------------------------------------------------- */
    const OGR_SRSNode *poEllipsoid = poDatum->GetNode( "SPHEROID" );

    if( poEllipsoid != NULL )
    {
        CPLXMLNode *psEllipseXML;

        psEllipseXML = 
            CPLCreateXMLNode( 
                CPLCreateXMLNode(psDatumXML,CXT_Element,"gml:usesEllipsoid" ),
                CXT_Element, "gml:Ellipsoid" );

        addGMLId( psEllipseXML );

        CPLCreateXMLElementAndValue( psEllipseXML, "gml:ellipsoidName", 
                                     poEllipsoid->GetChild(0)->GetValue() );

        exportAuthorityToXML( poEllipsoid, "gml:ellipsoidID", psEllipseXML,
                              "ellipsoid");
        
        CPLXMLNode *psParmXML;

        psParmXML = CPLCreateXMLNode( psEllipseXML, CXT_Element, 
                                      "gml:semiMajorAxis" );

        CPLCreateXMLNode( CPLCreateXMLNode(psParmXML,CXT_Attribute,"gml:uom"),
                          CXT_Text, "urn:ogc:def:uom:EPSG::9001" );

        CPLCreateXMLNode( psParmXML, CXT_Text, 
                          poEllipsoid->GetChild(1)->GetValue() );

        psParmXML = 
            CPLCreateXMLNode( 
                CPLCreateXMLNode( psEllipseXML, CXT_Element, 
                                  "gml:secondDefiningParameter" ),
                CXT_Element, "gml:inverseFlattening" );
        
        CPLCreateXMLNode( CPLCreateXMLNode(psParmXML,CXT_Attribute,"gml:uom"),
                          CXT_Text, "urn:ogc:def:uom:EPSG::9201" );

        CPLCreateXMLNode( psParmXML, CXT_Text, 
                          poEllipsoid->GetChild(2)->GetValue() );
    }

    return psGCS_XML;
}

/************************************************************************/
/*                         exportProjCSToXML()                          */
/************************************************************************/

static CPLXMLNode *exportProjCSToXML( const OGRSpatialReference *poSRS )

{
    const OGR_SRSNode *poProjCS = poSRS->GetAttrNode( "PROJCS" );

    if( poProjCS == NULL )
        return NULL;
    
/* -------------------------------------------------------------------- */
/*      Establish initial infrastructure.                               */
/* -------------------------------------------------------------------- */
    CPLXMLNode   *psCRS_XML;

    psCRS_XML = CPLCreateXMLNode( NULL, CXT_Element, "gml:ProjectedCRS" );
    addGMLId( psCRS_XML );
    
/* -------------------------------------------------------------------- */
/*      Attach symbolic name (a name in a nameset).                     */
/* -------------------------------------------------------------------- */
    CPLCreateXMLElementAndValue( psCRS_XML, "gml:srsName", 
                                 poProjCS->GetChild(0)->GetValue() );

/* -------------------------------------------------------------------- */
/*      Add authority info if we have it.                               */
/* -------------------------------------------------------------------- */
    exportAuthorityToXML( poProjCS, "gml:srsID", psCRS_XML, "crs" );

/* -------------------------------------------------------------------- */
/*      Use the GEOGCS as a <baseCRS>                                   */
/* -------------------------------------------------------------------- */
    CPLXMLNode *psBaseCRSXML =
        CPLCreateXMLNode( psCRS_XML, CXT_Element, "gml:baseCRS" );

    CPLAddXMLChild( psBaseCRSXML, exportGeogCSToXML( poSRS ) );

/* -------------------------------------------------------------------- */
/*      Our projected coordinate system is "defined by Conversion".     */
/* -------------------------------------------------------------------- */
    CPLXMLNode *psDefinedBy;

    psDefinedBy = CPLCreateXMLNode( psCRS_XML, CXT_Element, 
                                    "gml:definedByConversion" );
    
/* -------------------------------------------------------------------- */
/*      Projections are handled as ParameterizedTransformations.        */
/* -------------------------------------------------------------------- */
    const char *pszProjection = poSRS->GetAttrValue("PROJECTION");
    CPLXMLNode *psConv;

    psConv = CPLCreateXMLNode( psDefinedBy, CXT_Element, "gml:Conversion");
    addGMLId( psConv );

/* -------------------------------------------------------------------- */
/*      Transverse Mercator                                             */
/* -------------------------------------------------------------------- */
    if( EQUAL(pszProjection,SRS_PT_TRANSVERSE_MERCATOR) )
    {
        AddValueIDWithURN( psConv, "gml:usesMethod", "EPSG", "method", 
                           9807 );

        addProjArg( poSRS, psConv, "Angular", 0.0,
                    8801, SRS_PP_LATITUDE_OF_ORIGIN );
        addProjArg( poSRS, psConv, "Angular", 0.0,
                    8802, SRS_PP_CENTRAL_MERIDIAN );
        addProjArg( poSRS, psConv, "Unitless", 1.0,
                    8805, SRS_PP_SCALE_FACTOR );
        addProjArg( poSRS, psConv, "Linear", 0.0,
                    8806, SRS_PP_FALSE_EASTING );
        addProjArg( poSRS, psConv, "Linear", 0.0,
                    8807, SRS_PP_FALSE_NORTHING );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品视频在线| 在线一区二区三区四区| 911精品国产一区二区在线| 欧美激情一区在线| 国产福利一区二区三区| 99久久er热在这里只有精品66| bt欧美亚洲午夜电影天堂| 欧美色精品在线视频| 有码一区二区三区| 欧美韩日一区二区三区四区| 激情丁香综合五月| 99久久免费视频.com| 国产性色一区二区| 国产成人av电影| 日韩一区二区影院| 九九国产精品视频| 欧美午夜理伦三级在线观看| 欧美日韩高清在线播放| 亚洲图片自拍偷拍| 欧美国产欧美亚州国产日韩mv天天看完整| 久久电影国产免费久久电影| 欧美日韩国产在线观看| 美女视频一区在线观看| 精品欧美一区二区在线观看| 成人不卡免费av| 国产精品久久久久7777按摩 | 天堂蜜桃一区二区三区| 在线国产电影不卡| 亚洲五码中文字幕| 欧美日韩综合色| 久久97超碰国产精品超碰| 91久久免费观看| 国产99一区视频免费| 日本女人一区二区三区| 蜜臀99久久精品久久久久久软件| 国产欧美一区二区精品仙草咪| 欧美喷水一区二区| 欧美肥胖老妇做爰| 欧美日韩免费在线视频| 欧美三级乱人伦电影| 一本到不卡精品视频在线观看| 99久久久国产精品免费蜜臀| 欧美aaaaaa午夜精品| 亚洲影院久久精品| www日韩大片| 欧美性欧美巨大黑白大战| 国产精品69久久久久水密桃| 亚洲免费色视频| 日韩一区二区精品葵司在线 | 欧美一级一区二区| 91亚洲精华国产精华精华液| 成人高清免费在线播放| 91视频免费播放| 91精品在线观看入口| 欧美亚洲动漫制服丝袜| 欧美高清视频在线高清观看mv色露露十八| 成人在线视频首页| 99久久久久久| 亚洲欧美一区二区三区极速播放 | 精品国产百合女同互慰| 久久网这里都是精品| 欧美激情综合网| 国产一区二区三区日韩| 色综合久久99| 日韩免费高清电影| 亚洲综合男人的天堂| 亚洲人成影院在线观看| 成人激情图片网| 95精品视频在线| 懂色av中文字幕一区二区三区| 国产综合久久久久影院| 久久―日本道色综合久久| 日韩网站在线看片你懂的| 91农村精品一区二区在线| 亚洲电影一区二区三区| 91精品黄色片免费大全| 亚洲永久免费视频| 在线精品视频小说1| 亚洲国产中文字幕在线视频综合| 色婷婷综合久久久中文一区二区| 亚洲国产乱码最新视频 | 三级亚洲高清视频| 日韩免费观看2025年上映的电影| 波多野结衣欧美| 色天天综合色天天久久| 欧美男生操女生| 99精品国产视频| 精品日韩在线一区| 欧美色手机在线观看| 欧洲av在线精品| 激情五月激情综合网| 一区二区在线看| 成人av网站在线| 日本一区二区三区在线不卡| 国精产品一区一区三区mba视频| 尤物av一区二区| 一区二区激情小说| 日韩理论片网站| 国产精品亚洲成人| 3d成人动漫网站| 91麻豆精品国产91久久久久久久久 | 国产精品综合一区二区| 91精品久久久久久久91蜜桃| 国产精品69毛片高清亚洲| 久久久久久久久97黄色工厂| 亚洲欧美日韩小说| 国产亚洲精品久| 成人短视频下载| 亚洲成人自拍网| 久久精品在线观看| 国产成人一区在线| 亚洲色图欧洲色图婷婷| 视频一区在线视频| 5858s免费视频成人| 亚洲大尺度视频在线观看| 精品一区二区三区免费视频| 中文字幕中文在线不卡住| 亚洲精品一线二线三线无人区| 麻豆精品一区二区| 欧美国产一区二区在线观看| 欧美一区二区在线视频| 欧美丝袜第三区| 欧美精品在线观看播放| 国产成人在线观看| 国产精品1区2区| 麻豆免费看一区二区三区| 亚洲电影激情视频网站| 国产午夜亚洲精品理论片色戒| 福利电影一区二区| 国产aⅴ综合色| 在线观看av一区| 成人免费视频网站在线观看| 国产在线看一区| 色国产精品一区在线观看| 在线观看成人小视频| 欧美日韩国产系列| 91麻豆精品国产| 26uuu国产电影一区二区| 欧美精品一区二区在线观看| 欧美激情在线看| 91麻豆国产精品久久| 经典三级一区二区| 99r国产精品| 精品视频1区2区| 99热这里都是精品| 精品久久久网站| 最近日韩中文字幕| 国产精品对白交换视频 | 自拍偷在线精品自拍偷无码专区| 亚洲日本在线天堂| 国产精品一区在线观看你懂的| 国产一区二区精品久久99| 成人激情动漫在线观看| 欧美日韩在线播放一区| 欧美国产97人人爽人人喊| 香蕉成人伊视频在线观看| 久久精品国产亚洲a| 9久草视频在线视频精品| 不卡视频一二三| 欧美日韩免费观看一区三区| 国产精品国产三级国产三级人妇| 国内精品国产成人| 日韩欧美国产精品| 秋霞国产午夜精品免费视频| 制服丝袜亚洲网站| 中文字幕佐山爱一区二区免费| 国产一区在线不卡| 亚洲国产成人私人影院tom| 免费欧美高清视频| 日本高清视频一区二区| 欧美精彩视频一区二区三区| 激情六月婷婷久久| 3d动漫精品啪啪1区2区免费| 亚洲伦理在线精品| 欧美一区二区私人影院日本| 国产一区二区毛片| 中文字幕在线不卡一区二区三区| 99精品欧美一区二区三区小说| 亚洲黄色在线视频| 欧美日韩和欧美的一区二区| 日韩电影在线观看一区| 久久综合狠狠综合| 在线观看日产精品| 精品一二三四区| 一二三四区精品视频| 亚洲欧洲三级电影| 久久精子c满五个校花| 日本va欧美va精品| 久久免费偷拍视频| 国产不卡视频一区二区三区| 亚洲成av人在线观看| 中文字幕在线一区二区三区| 欧美日本在线视频| 精品一区二区三区免费视频| 一区二区三区中文免费| 久久久精品黄色| 欧美在线不卡视频| 色综合天天性综合| 成人激情免费视频| 成人av电影在线网|