1## @class Geo::OSR 2# @brief Base class for projection related classes. 3# @details 4 5## @sub @Projections() 6# @return list of known projections. 7 8## @sub @Parameters() 9# @return list of known projection parameters. 10 11## @sub @LinearUnits() 12# @return list of known linear units. 13 14## @sub @AngularUnits() 15# @return list of known angular units. 16 17## @sub @Datums() 18# @return list of known datums. 19 20## @sub $GetWellKnownGeogCSAsWKT($name) 21# @brief Get well known geographic coordinate system as WKT 22# @param name a well known name 23# @return a WKT string. 24 25## @sub $GetUserInputAsWKT($name) 26# @param name the user input 27# @return a WKT string. 28 29## @class Geo::OSR::SpatialReference 30# @brief A spatial reference system. 31# @details <a href="http://www.gdal.org/classOGRSpatialReference.html">Documentation 32# of the underlying C++ class at www.gdal.org</a> 33 34## @ignore ImportFromEPSGA 35## @ignore ImportFromERM 36## @ignore ImportFromMICoordSys 37## @ignore ImportFromWkt 38## @ignore ImportFromProj4 39## @ignore ImportFromESRI 40## @ignore ImportFromEPSG 41## @ignore ImportFromPCI 42## @ignore ImportFromUSGS 43## @ignore ImportFromXML 44## @ignore ImportFromUrl 45 46## @cmethod Geo::OSR::SpatialReference new(%params) 47# Create a new spatial reference object using a named parameter. This 48# constructor recognizes the following key words (alternative in 49# parenthesis): WKT (Text), Proj4, ESRI, EPSG, EPSGA, PCI, USGS, GML 50# (XML), URL, ERMapper (ERM), MapInfoCS (MICoordSys). The value 51# depends on the key. 52# - WKT: Well Known Text string 53# - Proj4: PROJ.4 string 54# - ESRI: reference to a list of strings (contents of ESRI .prj file) 55# - EPSG: EPSG code number 56# - EPSGA: EPSG code number (the resulting CS will have EPSG preferred axis ordering) 57# - PCI: listref: [PCI_projection_string, Grid_units_code, [17 cs parameters]] 58# - USGS: listref: [Projection_system_code, Zone, [15 cs parameters], Datum_code, Format_flag] 59# - GML: GML string 60# - URL: URL for downloading the spatial reference from 61# - ERMapper: listref: [Projection, Datum, Units] 62# - MapInfoCS: MapInfo style coordinate system definition 63# 64# For more information, consult the import methods in <a href="http://www.gdal.org/classOGRSpatialReference.html">OGR documentation</a>. 65# 66# @note ImportFrom* methods also exist but are not documented here. 67# 68# Usage: 69# \code 70# $sr = Geo::OSR::SpatialReference->new( key => value ); 71# \endcode 72# @return a new Geo::OSR::SpatialReference object 73 74## @method Geo::OSR::SpatialReference Clone() 75# Make a duplicate of this SpatialReference object. 76# @return a new Geo::OSR::SpatialReference object 77 78## @method Geo::OSR::SpatialReference CloneGeogCS() 79# Make a duplicate of the GEOGCS node of this SpatialReference object. 80# @return a new Geo::OSR::SpatialReference object 81 82## @ignore AsText 83## @ignore ExportToPrettyWkt 84## @ignore ExportToProj4 85## @ignore ExportToPCI 86## @ignore ExportToUSGS 87## @ignore ExportToXML 88## @ignore ExportToMICoordSys 89## @ignore ExportToWkt 90 91## @method Export($format) 92# Export the spatial reference to a selected format. 93# @note a.k.a. As 94# 95# @param format One of the following. The return value is explained 96# after the format. Other arguments are explained in parenthesis. 97# - WKT (Text): Well Known Text string 98# - PrettyWKT: Well Known Text string nicely formatted (simplify) 99# - Proj4: PROJ.4 string 100# - PCI: a list: ($proj_string, $units, [$parms1, ...]) 101# - USGS: a list: ($code, $zone, [$parms1, ...], $datum) 102# - GML (XML): GML based string (dialect) 103# - MapInfoCS (MICoordSys): MapInfo style coordinate system definition 104# 105# @note The named parameter syntax also works and is needed is those 106# cases when other arguments need or may be given. The format should 107# be given using key as, 'to' or 'format'. 108# 109# @note ExportTo* and AsText methods also exist but are not documented here. 110# 111# @return a scalar or a list depending on the export format 112 113## @ignore SetACEA 114## @ignore SetAE 115## @ignore SetAngularUnits 116## @ignore SetAttrValue 117## @ignore SetBonne 118## @ignore SetCS 119## @ignore SetCompoundCS 120## @ignore SetEC 121## @ignore SetEckertIV 122## @ignore SetEckertVI 123## @ignore SetEquirectangular 124## @ignore SetEquirectangular2 125## @ignore SetFromUserInput 126## @ignore SetGS 127## @ignore SetGaussSchreiberTMercator 128## @ignore SetGeocCS 129## @ignore SetIGH 130## @ignore SetLinearUnits 131## @ignore SetLinearUnitsAndUpdateParameters 132## @ignore SetNormProjParm 133## @ignore SetProjParm 134## @ignore SetProjection 135## @ignore SetStatePlane 136## @ignore SetTargetLinearUnits 137## @ignore SetUTM 138## @ignore SetVertCS 139## @ignore SetWellKnownGeogCS 140## @ignore SetAuthority 141## @ignore SetCEA 142## @ignore SetGEOS 143## @ignore SetGH 144## @ignore SetGnomonic 145## @ignore SetHOM 146## @ignore SetHOM2PNO 147## @ignore SetKrovak 148## @ignore SetLAEA 149## @ignore SetLCC 150## @ignore SetLCC1SP 151## @ignore SetLCCB 152## @ignore SetLocalCS 153## @ignore SetMC 154## @ignore SetMercator 155## @ignore SetMollweide 156## @ignore SetNZMG 157## @ignore SetOS 158## @ignore SetOrthographic 159## @ignore SetPS 160## @ignore SetPolyconic 161## @ignore SetRobinson 162## @ignore SetSOC 163## @ignore SetSinusoidal 164## @ignore SetStereographic 165## @ignore SetTM 166## @ignore SetTMG 167## @ignore SetTMSO 168## @ignore SetTMVariant 169## @ignore SetVDG 170## @ignore SetTOWGS84 171## @ignore SetGeogCS 172## @ignore SetProjCS 173 174## @method Set(%params) 175# Set a parameter or parameters in the spatial reference object. 176# @param params Named parameters. Recognized keys and respective 177# values are the following. 178# - Authority: authority name (give also TargetKey, Node and Code) 179# - TargetKey: 180# - Node: partial or complete path to the target node (Node and Value together sets an attribute value) 181# - Code: code for value with an authority 182# - Value: value to be assigned to a node, a projection parameter or an object 183# - AngularUnits: angular units for the geographic coordinate system (give also Value) (one of Geo::OSR::LinearUnits) 184# - LinearUnits: linear units for the target node or the object (give also Value and optionally Node) (one of Geo::OSR::LinearUnits) 185# - Parameter: projection parameter to set (give also Value and Normalized) (one of Geo::OSR::Parameters) 186# - Normalized: set to true to indicate that the Value argument is in "normalized" form 187# - Name: a well known name of a geographic coordinate system (e.g. WGS84) 188# - GuessFrom: arbitrary text that specifies a projection ("user input") 189# - LOCAL_CS: name of a local coordinate system 190# - GeocentricCS: name of a geocentric coordinate system 191# - VerticalCS: name of a vertical coordinate system (give also Datum and optionally VertDatumType [default is 2005]) 192# - Datum: a known (OGC or EPSG) name (or(?) one of Geo::OSR::Datums) 193# - CoordinateSystem: 'WGS', 'UTM', 'State Plane', or a user visible name (give optionally also Parameters, Zone, North, NAD83, UnitName, UnitConversionFactor, Datum, Spheroid, HorizontalCS, and/or VerticalCS 194# - Parameters: a reference to a list containing the coordinate system or projection parameters 195# - Zone: zone for setting up UTM or State Plane coordinate systems (State Plane zone in USGS numbering scheme) 196# - North: set false for southern hemisphere 197# - NAD83: set false if the NAD27 zone definition should be used instead of NAD83 198# - UnitName: to override the legal definition for a zone 199# - UnitConversionFactor: to override the legal definition for a zone 200# - Spheroid: user visible name 201# - HorizontalCS: Horizontal coordinate system name 202# - Projection: name of a projection, one of Geo::OSR::Projections (give also optionally Parameters and Variant) 203# 204# @note Numerous Set* methods also exist but are not documented here. 205 206## @method $IsSame($rs) 207# @param rs a Geo::OSR::SpatialReference object 208# @return boolean 209 210## @method $IsSameGeogCS($rs) 211# @param rs a Geo::OSR::SpatialReference object 212# @return boolean 213 214## @method $IsGeographic() 215# @return boolean 216 217## @method $IsProjected() 218# @return boolean 219 220## @method $IsLocal() 221# @return boolean 222 223## @method $IsCompound() 224# @return boolean 225 226## @method $IsGeocentric() 227# @return boolean 228 229## @method $IsVertical() 230# @return boolean 231 232## @method $IsSameVertCS($rs) 233# @param rs a Geo::OSR::SpatialReference object 234# @return boolean 235 236## @method $GetAttrValue($name, $child = 0) 237# @param name 238# @param child 239# @return string 240 241## @method $GetAngularUnits() 242# @return a number 243 244## @method $GetLinearUnits() 245# @return a number 246 247## @method $GetLinearUnitsName() 248# @return string 249 250## @method $GetAuthorityCode($target_key) 251# @param target_key 252# @return string 253 254## @method $GetAuthorityName($target_key) 255# @param target_key 256# @return string 257 258## @method $GetProjParm($name, $default_val = 0.0) 259# @param name 260# @param default_val 261# @return a number 262 263## @method $GetNormProjParm($name, $default_val = 0.0) 264# @param name 265# @param default_val 266# @return a number 267 268## @method CopyGeogCSFrom($rhs) 269# @param rhs Geo::OSR::SpatialReference 270 271## @method GetTOWGS84() 272# @return array = ($p1, $p2, $p3, $p4, $p5, $p6, $p7) 273 274## @method GetInvFlattening() 275 276## @method GetSemiMinor() 277 278## @method GetSemiMajor() 279 280## @method GetUTMZone() 281# Get UTM zone information. 282# @return The UTM zone (integer). In scalar context the returned value 283# is negative for southern hemisphere zones. In list context returns 284# two values ($zone, $north), where $zone is always non-negative and 285# $north is true or false. 286 287## @method AutoIdentifyEPSG() 288# Set EPSG authority info if possible. 289 290## @method EPSGTreatsAsLatLong() 291# Returns TRUE if EPSG feels this geographic coordinate system should be treated as having lat/long coordinate ordering. 292 293## @method Validate() 294 295## @method StripCTParms() 296 297## @method FixupOrdering() 298 299## @method Fixup() 300 301## @method MorphToESRI() 302 303## @method MorphFromESRI() 304 305 306## @class Geo::OSR::CoordinateTransformation 307# @brief An object for transforming from one projection to another. 308# @details 309 310## @cmethod Geo::OSR::CoordinateTransformation new($src, $dst) 311# @param src a Geo::OSR::SpatialReference object 312# @param dst a Geo::OSR::SpatialReference object 313# @return a new Geo::OSR::CoordinateTransformation object 314 315## @method \@TransformPoint($x, $y, $z) 316# @param x 317# @param y 318# @param z [optional] 319# @return arrayref = [$x, $y, $z] 320 321## @method TransformPoints(arrayref points) 322# @param points [in/out] a reference to a list of points (line string 323# or ring) that is modified in-place. A list of points is: ([x, y, z], 324# [x, y, z], ...), where z is optional. Supports also lists of line 325# strings and polygons. 326