Changes between Version 1 and Version 2 of rfc20_srs_axes


Ignore:
Timestamp:
Jan 4, 2008, 12:28:03 PM (16 years ago)
Author:
warmerdam
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • rfc20_srs_axes

    v1 v2  
    77== Summary ==
    88
    9 The OGRSpatialReference and OGRCoordinateTransformation classes assume that all coordinate systems use x=easting, y=northing (or in geographic terms x=longitude, y=longitude).  In practice some coordinate systems use alternate axis orientations (such as the Krovak projection), a some standards (GML, WMS 1.3, WCS 1.1) require honouring the EPSG declaration that all it's geographic coordinates refer to x as latitude and y as longitude.
     9The OGRSpatialReference and OGRCoordinateTransformation classes assume that all coordinate systems use x=easting, y=northing (or in geographic terms x=longitude, y=latitude).  In practice some coordinate systems use alternate axis orientations (such as the Krovak projection), and some standards (GML, WMS 1.3, WCS 1.1) require honouring the EPSG declaration that all it's geographic coordinates refer to x as latitude and y as longitude.
    1010
    1111This RFC attempts to extend the OGRSpatialReference, and OGRCoordinateTransformation classes to support alternate axis orientations, and to update selected drivers (GML, WMS, WCS, GMLJP2) to properly support axis ordering. 
     
    4343New methods:
    4444
     45{{{
     46    const char *GetAxis( const char *pszTargetKey, int iAxis,
     47                         int *pnOrientation );
     48}}}
     49
     50{{{
     51    OGRErr      SetAxes( const char *pszTargetKey,
     52                         const char *pszXAxisName, int nXAxisOrientation,
     53                         const char *pszYAxisName, int nYAxisOrientation );
     54}}}
     55
     56Defines the X and Y axes for a given target key (PROJCS or GEOGCS).
     57
     58{{{
     59    int         EPSGTreatsAsLatLong();
     60}}}
     61
     62Note that OGRSpatialReference::StripNodes( "AXIS" ); can be used to strip axis definitions where they are not desired.
     63
     64Changed Methods:
     65
     66* Modify importFromURN() to set AXIS values properly for EPSG and OGC geographic coordinate systems.  So urn:...:EPSG: will be assumed to really honour EPSG conventions.
     67* Modify SetWellKnownGeogCS() to *not* set AXIS values, and strip AXIS values out of any other hardcoded WKT definitions.
     68* importFromEPSG() will continue to *not* set AXIS values for GEOGCS coordinate systems.
     69* importFromEPSG() *will* now set axis values for projected coordinate systems (at least in cases like Krovak where it is a non-default axis orientation).
     70
     71== OGRCoordinateTransformation ==
     72
     73If AXIS values are set on source and/or destination coordinate system, the OGRCoordinateTransformation code will take care of converting into normal easting/northing before calling PROJ.4. 
     74
     75
     76
     77== Questions ==
     78
     79# Should we try and address the Z axis too?
     80# Are there values other than EAST, WEST, NORTH and SOUTH in the specification?
     81# Should we use an enumeration for EAST, WEST, NORTH and SOUTH instead of #define's.
     82#