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