1 # This file was automatically generated by SWIG (http://www.swig.org).
4 # Do not make changes to this file unless you know what you are doing--modify
5 # the SWIG interface file instead.
15 # ---------- BASE METHODS -------------
20 my ($classname,$obj) = @_;
21 return bless $obj, $classname;
31 my ($self,$field) = @_;
32 my $member_func =
"swig_${field}_get";
33 $self->$member_func();
37 my ($self,$field,$newval) = @_;
38 my $member_func =
"swig_${field}_set";
39 $self->$member_func($newval);
48 # ------- FUNCTION WRAPPERS --------
52 *UseExceptions = *Geo::OSRc::UseExceptions;
53 *DontUseExceptions = *Geo::OSRc::DontUseExceptions;
54 *GetWellKnownGeogCSAsWKT = *Geo::OSRc::GetWellKnownGeogCSAsWKT;
55 *GetUserInputAsWKT = *Geo::OSRc::GetUserInputAsWKT;
56 *OSRAreaOfUse_west_lon_degree_get = *Geo::OSRc::OSRAreaOfUse_west_lon_degree_get;
57 *OSRAreaOfUse_south_lat_degree_get = *Geo::OSRc::OSRAreaOfUse_south_lat_degree_get;
58 *OSRAreaOfUse_east_lon_degree_get = *Geo::OSRc::OSRAreaOfUse_east_lon_degree_get;
59 *OSRAreaOfUse_north_lat_degree_get = *Geo::OSRc::OSRAreaOfUse_north_lat_degree_get;
60 *OSRAreaOfUse_name_get = *Geo::OSRc::OSRAreaOfUse_name_get;
61 *CreateCoordinateTransformation = *Geo::OSRc::CreateCoordinateTransformation;
62 *SetPROJSearchPath = *Geo::OSRc::SetPROJSearchPath;
63 *SetPROJSearchPaths = *Geo::OSRc::SetPROJSearchPaths;
64 *GetPROJSearchPaths = *Geo::OSRc::GetPROJSearchPaths;
65 *GetPROJVersionMajor = *Geo::OSRc::GetPROJVersionMajor;
66 *GetPROJVersionMinor = *Geo::OSRc::GetPROJVersionMinor;
67 *GetPROJVersionMicro = *Geo::OSRc::GetPROJVersionMicro;
69 ############# Class : Geo::OSR::AreaOfUse ##############
71 package Geo::OSR::AreaOfUse;
72 use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
76 *swig_west_lon_degree_get = *Geo::OSRc::AreaOfUse_west_lon_degree_get;
77 *swig_west_lon_degree_set = *Geo::OSRc::AreaOfUse_west_lon_degree_set;
78 *swig_south_lat_degree_get = *Geo::OSRc::AreaOfUse_south_lat_degree_get;
79 *swig_south_lat_degree_set = *Geo::OSRc::AreaOfUse_south_lat_degree_set;
80 *swig_east_lon_degree_get = *Geo::OSRc::AreaOfUse_east_lon_degree_get;
81 *swig_east_lon_degree_set = *Geo::OSRc::AreaOfUse_east_lon_degree_set;
82 *swig_north_lat_degree_get = *Geo::OSRc::AreaOfUse_north_lat_degree_get;
83 *swig_north_lat_degree_set = *Geo::OSRc::AreaOfUse_north_lat_degree_set;
84 *swig_name_get = *Geo::OSRc::AreaOfUse_name_get;
85 *swig_name_set = *Geo::OSRc::AreaOfUse_name_set;
88 my $self = Geo::OSRc::new_AreaOfUse(@_);
89 bless $self, $pkg
if defined($self);
93 return unless $_[0]->isa(
'HASH');
94 my $self = tied(%{$_[0]});
95 return unless defined $self;
96 delete $ITERATORS{$self};
97 if (exists $OWNER{$self}) {
98 Geo::OSRc::delete_AreaOfUse($self);
105 my $ptr = tied(%$self);
111 my $ptr = tied(%$self);
116 ############# Class : Geo::OSR::SpatialReference ##############
118 package Geo::OSR::SpatialReference;
119 use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
127 my $self = Geo::OSRc::new_SpatialReference();
128 if (exists $param{WKT}) {
129 ImportFromWkt($self, $param{WKT});
130 } elsif (exists $param{Text}) {
131 ImportFromWkt($self, $param{Text});
132 } elsif (exists $param{Proj4}) {
133 ImportFromProj4($self, $param{Proj4});
134 } elsif (exists $param{ESRI}) {
135 ImportFromESRI($self, @{$param{ESRI}});
136 } elsif (exists $param{EPSG}) {
137 ImportFromEPSG($self, $param{EPSG});
138 } elsif (exists $param{EPSGA}) {
139 ImportFromEPSGA($self, $param{EPSGA});
140 } elsif (exists $param{PCI}) {
141 ImportFromPCI($self, @{$param{PCI}});
142 } elsif (exists $param{USGS}) {
143 ImportFromUSGS($self, @{$param{USGS}});
144 } elsif (exists $param{XML}) {
145 ImportFromXML($self, $param{XML});
146 } elsif (exists $param{GML}) {
147 ImportFromGML($self, $param{GML});
148 } elsif (exists $param{URL}) {
149 ImportFromUrl($self, $param{URL});
150 } elsif (exists $param{ERMapper}) {
151 ImportFromERM($self, @{$param{ERMapper}});
152 } elsif (exists $param{ERM}) {
153 ImportFromERM($self, @{$param{ERM}});
154 } elsif (exists $param{MICoordSys}) {
155 ImportFromMICoordSys($self, $param{MICoordSys});
156 } elsif (exists $param{MapInfoCS}) {
157 ImportFromMICoordSys($self, $param{MapInfoCS});
158 } elsif (exists $param{WGS}) {
160 SetWellKnownGeogCS($self,
'WGS'.$param{WGS});
162 confess last_error() if $@;
164 error(
"Unrecognized/missing parameters: @_.");
166 bless $self, $pkg
if defined $self;
170 return unless $_[0]->isa(
'HASH');
171 my $self = tied(%{$_[0]});
172 return unless defined $self;
173 delete $ITERATORS{$self};
174 if (exists $OWNER{$self}) {
175 Geo::OSRc::delete_SpatialReference($self);
176 delete $OWNER{$self};
180 *GetName = *Geo::OSRc::SpatialReference_GetName;
181 *IsSame = *Geo::OSRc::SpatialReference_IsSame;
182 *IsSameGeogCS = *Geo::OSRc::SpatialReference_IsSameGeogCS;
183 *IsSameVertCS = *Geo::OSRc::SpatialReference_IsSameVertCS;
184 *IsGeographic = *Geo::OSRc::SpatialReference_IsGeographic;
185 *IsDerivedGeographic = *Geo::OSRc::SpatialReference_IsDerivedGeographic;
186 *IsProjected = *Geo::OSRc::SpatialReference_IsProjected;
187 *IsCompound = *Geo::OSRc::SpatialReference_IsCompound;
188 *IsGeocentric = *Geo::OSRc::SpatialReference_IsGeocentric;
189 *IsLocal = *Geo::OSRc::SpatialReference_IsLocal;
190 *IsVertical = *Geo::OSRc::SpatialReference_IsVertical;
191 *EPSGTreatsAsLatLong = *Geo::OSRc::SpatialReference_EPSGTreatsAsLatLong;
192 *EPSGTreatsAsNorthingEasting = *Geo::OSRc::SpatialReference_EPSGTreatsAsNorthingEasting;
193 *SetAuthority = *Geo::OSRc::SpatialReference_SetAuthority;
194 *GetAttrValue = *Geo::OSRc::SpatialReference_GetAttrValue;
195 *SetAttrValue = *Geo::OSRc::SpatialReference_SetAttrValue;
196 *SetAngularUnits = *Geo::OSRc::SpatialReference_SetAngularUnits;
197 *GetAngularUnits = *Geo::OSRc::SpatialReference_GetAngularUnits;
198 *GetAngularUnitsName = *Geo::OSRc::SpatialReference_GetAngularUnitsName;
199 *SetTargetLinearUnits = *Geo::OSRc::SpatialReference_SetTargetLinearUnits;
200 *SetLinearUnits = *Geo::OSRc::SpatialReference_SetLinearUnits;
201 *SetLinearUnitsAndUpdateParameters = *Geo::OSRc::SpatialReference_SetLinearUnitsAndUpdateParameters;
202 *GetTargetLinearUnits = *Geo::OSRc::SpatialReference_GetTargetLinearUnits;
203 *GetLinearUnits = *Geo::OSRc::SpatialReference_GetLinearUnits;
204 *GetLinearUnitsName = *Geo::OSRc::SpatialReference_GetLinearUnitsName;
205 *GetAuthorityCode = *Geo::OSRc::SpatialReference_GetAuthorityCode;
206 *GetAuthorityName = *Geo::OSRc::SpatialReference_GetAuthorityName;
207 *GetAreaOfUse = *Geo::OSRc::SpatialReference_GetAreaOfUse;
208 *GetAxisName = *Geo::OSRc::SpatialReference_GetAxisName;
209 *GetAxesCount = *Geo::OSRc::SpatialReference_GetAxesCount;
210 *GetAxisOrientation = *Geo::OSRc::SpatialReference_GetAxisOrientation;
211 *GetAxisMappingStrategy = *Geo::OSRc::SpatialReference_GetAxisMappingStrategy;
212 *SetAxisMappingStrategy = *Geo::OSRc::SpatialReference_SetAxisMappingStrategy;
213 *GetDataAxisToSRSAxisMapping = *Geo::OSRc::SpatialReference_GetDataAxisToSRSAxisMapping;
214 *SetDataAxisToSRSAxisMapping = *Geo::OSRc::SpatialReference_SetDataAxisToSRSAxisMapping;
215 *SetUTM = *Geo::OSRc::SpatialReference_SetUTM;
216 *_GetUTMZone = *Geo::OSRc::SpatialReference__GetUTMZone;
217 *SetStatePlane = *Geo::OSRc::SpatialReference_SetStatePlane;
218 *AutoIdentifyEPSG = *Geo::OSRc::SpatialReference_AutoIdentifyEPSG;
219 *SetProjection = *Geo::OSRc::SpatialReference_SetProjection;
220 *SetProjParm = *Geo::OSRc::SpatialReference_SetProjParm;
221 *GetProjParm = *Geo::OSRc::SpatialReference_GetProjParm;
222 *SetNormProjParm = *Geo::OSRc::SpatialReference_SetNormProjParm;
223 *GetNormProjParm = *Geo::OSRc::SpatialReference_GetNormProjParm;
224 *GetSemiMajor = *Geo::OSRc::SpatialReference_GetSemiMajor;
225 *GetSemiMinor = *Geo::OSRc::SpatialReference_GetSemiMinor;
226 *GetInvFlattening = *Geo::OSRc::SpatialReference_GetInvFlattening;
227 *SetACEA = *Geo::OSRc::SpatialReference_SetACEA;
228 *SetAE = *Geo::OSRc::SpatialReference_SetAE;
229 *SetBonne = *Geo::OSRc::SpatialReference_SetBonne;
230 *SetCEA = *Geo::OSRc::SpatialReference_SetCEA;
231 *SetCS = *Geo::OSRc::SpatialReference_SetCS;
232 *SetEC = *Geo::OSRc::SpatialReference_SetEC;
233 *SetEckertIV = *Geo::OSRc::SpatialReference_SetEckertIV;
234 *SetEckertVI = *Geo::OSRc::SpatialReference_SetEckertVI;
235 *SetEquirectangular = *Geo::OSRc::SpatialReference_SetEquirectangular;
236 *SetEquirectangular2 = *Geo::OSRc::SpatialReference_SetEquirectangular2;
237 *SetGaussSchreiberTMercator = *Geo::OSRc::SpatialReference_SetGaussSchreiberTMercator;
238 *SetGS = *Geo::OSRc::SpatialReference_SetGS;
239 *SetGH = *Geo::OSRc::SpatialReference_SetGH;
240 *SetIGH = *Geo::OSRc::SpatialReference_SetIGH;
241 *SetGEOS = *Geo::OSRc::SpatialReference_SetGEOS;
242 *SetGnomonic = *Geo::OSRc::SpatialReference_SetGnomonic;
243 *SetHOM = *Geo::OSRc::SpatialReference_SetHOM;
244 *SetHOM2PNO = *Geo::OSRc::SpatialReference_SetHOM2PNO;
245 *SetKrovak = *Geo::OSRc::SpatialReference_SetKrovak;
246 *SetLAEA = *Geo::OSRc::SpatialReference_SetLAEA;
247 *SetLCC = *Geo::OSRc::SpatialReference_SetLCC;
248 *SetLCC1SP = *Geo::OSRc::SpatialReference_SetLCC1SP;
249 *SetLCCB = *Geo::OSRc::SpatialReference_SetLCCB;
250 *SetMC = *Geo::OSRc::SpatialReference_SetMC;
251 *SetMercator = *Geo::OSRc::SpatialReference_SetMercator;
252 *SetMercator2SP = *Geo::OSRc::SpatialReference_SetMercator2SP;
253 *SetMollweide = *Geo::OSRc::SpatialReference_SetMollweide;
254 *SetNZMG = *Geo::OSRc::SpatialReference_SetNZMG;
255 *SetOS = *Geo::OSRc::SpatialReference_SetOS;
256 *SetOrthographic = *Geo::OSRc::SpatialReference_SetOrthographic;
257 *SetPolyconic = *Geo::OSRc::SpatialReference_SetPolyconic;
258 *SetPS = *Geo::OSRc::SpatialReference_SetPS;
259 *SetRobinson = *Geo::OSRc::SpatialReference_SetRobinson;
260 *SetSinusoidal = *Geo::OSRc::SpatialReference_SetSinusoidal;
261 *SetStereographic = *Geo::OSRc::SpatialReference_SetStereographic;
262 *SetSOC = *Geo::OSRc::SpatialReference_SetSOC;
263 *SetTM = *Geo::OSRc::SpatialReference_SetTM;
264 *SetTMVariant = *Geo::OSRc::SpatialReference_SetTMVariant;
265 *SetTMG = *Geo::OSRc::SpatialReference_SetTMG;
266 *SetTMSO = *Geo::OSRc::SpatialReference_SetTMSO;
267 *SetVDG = *Geo::OSRc::SpatialReference_SetVDG;
268 *SetVerticalPerspective = *Geo::OSRc::SpatialReference_SetVerticalPerspective;
269 *SetWellKnownGeogCS = *Geo::OSRc::SpatialReference_SetWellKnownGeogCS;
270 *SetFromUserInput = *Geo::OSRc::SpatialReference_SetFromUserInput;
271 *CopyGeogCSFrom = *Geo::OSRc::SpatialReference_CopyGeogCSFrom;
272 *SetTOWGS84 = *Geo::OSRc::SpatialReference_SetTOWGS84;
273 *HasTOWGS84 = *Geo::OSRc::SpatialReference_HasTOWGS84;
274 *GetTOWGS84 = *Geo::OSRc::SpatialReference_GetTOWGS84;
275 *AddGuessedTOWGS84 = *Geo::OSRc::SpatialReference_AddGuessedTOWGS84;
276 *SetLocalCS = *Geo::OSRc::SpatialReference_SetLocalCS;
277 *SetGeogCS = *Geo::OSRc::SpatialReference_SetGeogCS;
278 *SetProjCS = *Geo::OSRc::SpatialReference_SetProjCS;
279 *SetGeocCS = *Geo::OSRc::SpatialReference_SetGeocCS;
280 *SetVertCS = *Geo::OSRc::SpatialReference_SetVertCS;
281 *SetCompoundCS = *Geo::OSRc::SpatialReference_SetCompoundCS;
282 *ImportFromWkt = *Geo::OSRc::SpatialReference_ImportFromWkt;
283 *ImportFromProj4 = *Geo::OSRc::SpatialReference_ImportFromProj4;
284 *ImportFromUrl = *Geo::OSRc::SpatialReference_ImportFromUrl;
285 *ImportFromESRI = *Geo::OSRc::SpatialReference_ImportFromESRI;
286 *ImportFromEPSG = *Geo::OSRc::SpatialReference_ImportFromEPSG;
287 *ImportFromEPSGA = *Geo::OSRc::SpatialReference_ImportFromEPSGA;
288 *ImportFromPCI = *Geo::OSRc::SpatialReference_ImportFromPCI;
289 *ImportFromUSGS = *Geo::OSRc::SpatialReference_ImportFromUSGS;
290 *ImportFromXML = *Geo::OSRc::SpatialReference_ImportFromXML;
291 *ImportFromERM = *Geo::OSRc::SpatialReference_ImportFromERM;
292 *ImportFromMICoordSys = *Geo::OSRc::SpatialReference_ImportFromMICoordSys;
293 *ImportFromOzi = *Geo::OSRc::SpatialReference_ImportFromOzi;
294 *ExportToWkt = *Geo::OSRc::SpatialReference_ExportToWkt;
295 *ExportToPrettyWkt = *Geo::OSRc::SpatialReference_ExportToPrettyWkt;
296 *ExportToPROJJSON = *Geo::OSRc::SpatialReference_ExportToPROJJSON;
297 *ExportToProj4 = *Geo::OSRc::SpatialReference_ExportToProj4;
298 *ExportToPCI = *Geo::OSRc::SpatialReference_ExportToPCI;
299 *ExportToUSGS = *Geo::OSRc::SpatialReference_ExportToUSGS;
300 *ExportToXML = *Geo::OSRc::SpatialReference_ExportToXML;
301 *ExportToMICoordSys = *Geo::OSRc::SpatialReference_ExportToMICoordSys;
302 *CloneGeogCS = *Geo::OSRc::SpatialReference_CloneGeogCS;
303 *Clone = *Geo::OSRc::SpatialReference_Clone;
304 *Validate = *Geo::OSRc::SpatialReference_Validate;
305 *MorphToESRI = *Geo::OSRc::SpatialReference_MorphToESRI;
306 *MorphFromESRI = *Geo::OSRc::SpatialReference_MorphFromESRI;
307 *ConvertToOtherProjection = *Geo::OSRc::SpatialReference_ConvertToOtherProjection;
308 *PromoteTo3D = *Geo::OSRc::SpatialReference_PromoteTo3D;
309 *DemoteTo2D = *Geo::OSRc::SpatialReference_DemoteTo2D;
312 my $ptr = tied(%$self);
318 my $ptr = tied(%$self);
323 ############# Class : Geo::OSR::CoordinateTransformationOptions ##############
325 package Geo::OSR::CoordinateTransformationOptions;
326 use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
332 my $self = Geo::OSRc::new_CoordinateTransformationOptions(@_);
333 bless $self, $pkg
if defined($self);
337 return unless $_[0]->isa(
'HASH');
338 my $self = tied(%{$_[0]});
339 return unless defined $self;
340 delete $ITERATORS{$self};
341 if (exists $OWNER{$self}) {
342 Geo::OSRc::delete_CoordinateTransformationOptions($self);
343 delete $OWNER{$self};
347 *SetAreaOfInterest = *Geo::OSRc::CoordinateTransformationOptions_SetAreaOfInterest;
348 *SetOperation = *Geo::OSRc::CoordinateTransformationOptions_SetOperation;
351 my $ptr = tied(%$self);
357 my $ptr = tied(%$self);
362 ############# Class : Geo::OSR::CoordinateTransformation ##############
364 package Geo::OSR::CoordinateTransformation;
365 use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
371 my $self = Geo::OSRc::new_CoordinateTransformation(@_);
372 bless $self, $pkg
if defined($self);
376 return unless $_[0]->isa(
'HASH');
377 my $self = tied(%{$_[0]});
378 return unless defined $self;
379 delete $ITERATORS{$self};
380 if (exists $OWNER{$self}) {
381 Geo::OSRc::delete_CoordinateTransformation($self);
382 delete $OWNER{$self};
386 *TransformPoint = *Geo::OSRc::CoordinateTransformation_TransformPoint;
387 *_TransformPoints = *Geo::OSRc::CoordinateTransformation__TransformPoints;
390 my $ptr = tied(%$self);
396 my $ptr = tied(%$self);
401 # ------- VARIABLE STUBS --------
405 *SRS_WKT_WGS84_LAT_LONG = *Geo::OSRc::SRS_WKT_WGS84_LAT_LONG;
406 *SRS_PT_ALBERS_CONIC_EQUAL_AREA = *Geo::OSRc::SRS_PT_ALBERS_CONIC_EQUAL_AREA;
407 *SRS_PT_AZIMUTHAL_EQUIDISTANT = *Geo::OSRc::SRS_PT_AZIMUTHAL_EQUIDISTANT;
408 *SRS_PT_CASSINI_SOLDNER = *Geo::OSRc::SRS_PT_CASSINI_SOLDNER;
409 *SRS_PT_CYLINDRICAL_EQUAL_AREA = *Geo::OSRc::SRS_PT_CYLINDRICAL_EQUAL_AREA;
410 *SRS_PT_BONNE = *Geo::OSRc::SRS_PT_BONNE;
411 *SRS_PT_ECKERT_I = *Geo::OSRc::SRS_PT_ECKERT_I;
412 *SRS_PT_ECKERT_II = *Geo::OSRc::SRS_PT_ECKERT_II;
413 *SRS_PT_ECKERT_III = *Geo::OSRc::SRS_PT_ECKERT_III;
414 *SRS_PT_ECKERT_IV = *Geo::OSRc::SRS_PT_ECKERT_IV;
415 *SRS_PT_ECKERT_V = *Geo::OSRc::SRS_PT_ECKERT_V;
416 *SRS_PT_ECKERT_VI = *Geo::OSRc::SRS_PT_ECKERT_VI;
417 *SRS_PT_EQUIDISTANT_CONIC = *Geo::OSRc::SRS_PT_EQUIDISTANT_CONIC;
418 *SRS_PT_EQUIRECTANGULAR = *Geo::OSRc::SRS_PT_EQUIRECTANGULAR;
419 *SRS_PT_GALL_STEREOGRAPHIC = *Geo::OSRc::SRS_PT_GALL_STEREOGRAPHIC;
420 *SRS_PT_GAUSSSCHREIBERTMERCATOR = *Geo::OSRc::SRS_PT_GAUSSSCHREIBERTMERCATOR;
421 *SRS_PT_GEOSTATIONARY_SATELLITE = *Geo::OSRc::SRS_PT_GEOSTATIONARY_SATELLITE;
422 *SRS_PT_GOODE_HOMOLOSINE = *Geo::OSRc::SRS_PT_GOODE_HOMOLOSINE;
423 *SRS_PT_IGH = *Geo::OSRc::SRS_PT_IGH;
424 *SRS_PT_GNOMONIC = *Geo::OSRc::SRS_PT_GNOMONIC;
425 *SRS_PT_HOTINE_OBLIQUE_MERCATOR_AZIMUTH_CENTER = *Geo::OSRc::SRS_PT_HOTINE_OBLIQUE_MERCATOR_AZIMUTH_CENTER;
426 *SRS_PT_HOTINE_OBLIQUE_MERCATOR = *Geo::OSRc::SRS_PT_HOTINE_OBLIQUE_MERCATOR;
427 *SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN = *Geo::OSRc::SRS_PT_HOTINE_OBLIQUE_MERCATOR_TWO_POINT_NATURAL_ORIGIN;
428 *SRS_PT_LABORDE_OBLIQUE_MERCATOR = *Geo::OSRc::SRS_PT_LABORDE_OBLIQUE_MERCATOR;
429 *SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP = *Geo::OSRc::SRS_PT_LAMBERT_CONFORMAL_CONIC_1SP;
430 *SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP = *Geo::OSRc::SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP;
431 *SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM = *Geo::OSRc::SRS_PT_LAMBERT_CONFORMAL_CONIC_2SP_BELGIUM;
432 *SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA = *Geo::OSRc::SRS_PT_LAMBERT_AZIMUTHAL_EQUAL_AREA;
433 *SRS_PT_MERCATOR_1SP = *Geo::OSRc::SRS_PT_MERCATOR_1SP;
434 *SRS_PT_MERCATOR_2SP = *Geo::OSRc::SRS_PT_MERCATOR_2SP;
435 *SRS_PT_MERCATOR_AUXILIARY_SPHERE = *Geo::OSRc::SRS_PT_MERCATOR_AUXILIARY_SPHERE;
436 *SRS_PT_MILLER_CYLINDRICAL = *Geo::OSRc::SRS_PT_MILLER_CYLINDRICAL;
437 *SRS_PT_MOLLWEIDE = *Geo::OSRc::SRS_PT_MOLLWEIDE;
438 *SRS_PT_NEW_ZEALAND_MAP_GRID = *Geo::OSRc::SRS_PT_NEW_ZEALAND_MAP_GRID;
439 *SRS_PT_OBLIQUE_STEREOGRAPHIC = *Geo::OSRc::SRS_PT_OBLIQUE_STEREOGRAPHIC;
440 *SRS_PT_ORTHOGRAPHIC = *Geo::OSRc::SRS_PT_ORTHOGRAPHIC;
441 *SRS_PT_POLAR_STEREOGRAPHIC = *Geo::OSRc::SRS_PT_POLAR_STEREOGRAPHIC;
442 *SRS_PT_POLYCONIC = *Geo::OSRc::SRS_PT_POLYCONIC;
443 *SRS_PT_ROBINSON = *Geo::OSRc::SRS_PT_ROBINSON;
444 *SRS_PT_SINUSOIDAL = *Geo::OSRc::SRS_PT_SINUSOIDAL;
445 *SRS_PT_STEREOGRAPHIC = *Geo::OSRc::SRS_PT_STEREOGRAPHIC;
446 *SRS_PT_SWISS_OBLIQUE_CYLINDRICAL = *Geo::OSRc::SRS_PT_SWISS_OBLIQUE_CYLINDRICAL;
447 *SRS_PT_TRANSVERSE_MERCATOR = *Geo::OSRc::SRS_PT_TRANSVERSE_MERCATOR;
448 *SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED = *Geo::OSRc::SRS_PT_TRANSVERSE_MERCATOR_SOUTH_ORIENTED;
449 *SRS_PT_TRANSVERSE_MERCATOR_MI_21 = *Geo::OSRc::SRS_PT_TRANSVERSE_MERCATOR_MI_21;
450 *SRS_PT_TRANSVERSE_MERCATOR_MI_22 = *Geo::OSRc::SRS_PT_TRANSVERSE_MERCATOR_MI_22;
451 *SRS_PT_TRANSVERSE_MERCATOR_MI_23 = *Geo::OSRc::SRS_PT_TRANSVERSE_MERCATOR_MI_23;
452 *SRS_PT_TRANSVERSE_MERCATOR_MI_24 = *Geo::OSRc::SRS_PT_TRANSVERSE_MERCATOR_MI_24;
453 *SRS_PT_TRANSVERSE_MERCATOR_MI_25 = *Geo::OSRc::SRS_PT_TRANSVERSE_MERCATOR_MI_25;
454 *SRS_PT_TUNISIA_MINING_GRID = *Geo::OSRc::SRS_PT_TUNISIA_MINING_GRID;
455 *SRS_PT_TWO_POINT_EQUIDISTANT = *Geo::OSRc::SRS_PT_TWO_POINT_EQUIDISTANT;
456 *SRS_PT_VANDERGRINTEN = *Geo::OSRc::SRS_PT_VANDERGRINTEN;
457 *SRS_PT_KROVAK = *Geo::OSRc::SRS_PT_KROVAK;
458 *SRS_PT_IMW_POLYCONIC = *Geo::OSRc::SRS_PT_IMW_POLYCONIC;
459 *SRS_PT_WAGNER_I = *Geo::OSRc::SRS_PT_WAGNER_I;
460 *SRS_PT_WAGNER_II = *Geo::OSRc::SRS_PT_WAGNER_II;
461 *SRS_PT_WAGNER_III = *Geo::OSRc::SRS_PT_WAGNER_III;
462 *SRS_PT_WAGNER_IV = *Geo::OSRc::SRS_PT_WAGNER_IV;
463 *SRS_PT_WAGNER_V = *Geo::OSRc::SRS_PT_WAGNER_V;
464 *SRS_PT_WAGNER_VI = *Geo::OSRc::SRS_PT_WAGNER_VI;
465 *SRS_PT_WAGNER_VII = *Geo::OSRc::SRS_PT_WAGNER_VII;
466 *SRS_PT_QSC = *Geo::OSRc::SRS_PT_QSC;
467 *SRS_PT_AITOFF = *Geo::OSRc::SRS_PT_AITOFF;
468 *SRS_PT_WINKEL_I = *Geo::OSRc::SRS_PT_WINKEL_I;
469 *SRS_PT_WINKEL_II = *Geo::OSRc::SRS_PT_WINKEL_II;
470 *SRS_PT_WINKEL_TRIPEL = *Geo::OSRc::SRS_PT_WINKEL_TRIPEL;
471 *SRS_PT_CRASTER_PARABOLIC = *Geo::OSRc::SRS_PT_CRASTER_PARABOLIC;
472 *SRS_PT_LOXIMUTHAL = *Geo::OSRc::SRS_PT_LOXIMUTHAL;
473 *SRS_PT_QUARTIC_AUTHALIC = *Geo::OSRc::SRS_PT_QUARTIC_AUTHALIC;
474 *SRS_PT_SCH = *Geo::OSRc::SRS_PT_SCH;
475 *SRS_PP_CENTRAL_MERIDIAN = *Geo::OSRc::SRS_PP_CENTRAL_MERIDIAN;
476 *SRS_PP_SCALE_FACTOR = *Geo::OSRc::SRS_PP_SCALE_FACTOR;
477 *SRS_PP_STANDARD_PARALLEL_1 = *Geo::OSRc::SRS_PP_STANDARD_PARALLEL_1;
478 *SRS_PP_STANDARD_PARALLEL_2 = *Geo::OSRc::SRS_PP_STANDARD_PARALLEL_2;
479 *SRS_PP_PSEUDO_STD_PARALLEL_1 = *Geo::OSRc::SRS_PP_PSEUDO_STD_PARALLEL_1;
480 *SRS_PP_LONGITUDE_OF_CENTER = *Geo::OSRc::SRS_PP_LONGITUDE_OF_CENTER;
481 *SRS_PP_LATITUDE_OF_CENTER = *Geo::OSRc::SRS_PP_LATITUDE_OF_CENTER;
482 *SRS_PP_LONGITUDE_OF_ORIGIN = *Geo::OSRc::SRS_PP_LONGITUDE_OF_ORIGIN;
483 *SRS_PP_LATITUDE_OF_ORIGIN = *Geo::OSRc::SRS_PP_LATITUDE_OF_ORIGIN;
484 *SRS_PP_FALSE_EASTING = *Geo::OSRc::SRS_PP_FALSE_EASTING;
485 *SRS_PP_FALSE_NORTHING = *Geo::OSRc::SRS_PP_FALSE_NORTHING;
486 *SRS_PP_AZIMUTH = *Geo::OSRc::SRS_PP_AZIMUTH;
487 *SRS_PP_LONGITUDE_OF_POINT_1 = *Geo::OSRc::SRS_PP_LONGITUDE_OF_POINT_1;
488 *SRS_PP_LATITUDE_OF_POINT_1 = *Geo::OSRc::SRS_PP_LATITUDE_OF_POINT_1;
489 *SRS_PP_LONGITUDE_OF_POINT_2 = *Geo::OSRc::SRS_PP_LONGITUDE_OF_POINT_2;
490 *SRS_PP_LATITUDE_OF_POINT_2 = *Geo::OSRc::SRS_PP_LATITUDE_OF_POINT_2;
491 *SRS_PP_LONGITUDE_OF_POINT_3 = *Geo::OSRc::SRS_PP_LONGITUDE_OF_POINT_3;
492 *SRS_PP_LATITUDE_OF_POINT_3 = *Geo::OSRc::SRS_PP_LATITUDE_OF_POINT_3;
493 *SRS_PP_RECTIFIED_GRID_ANGLE = *Geo::OSRc::SRS_PP_RECTIFIED_GRID_ANGLE;
494 *SRS_PP_LANDSAT_NUMBER = *Geo::OSRc::SRS_PP_LANDSAT_NUMBER;
495 *SRS_PP_PATH_NUMBER = *Geo::OSRc::SRS_PP_PATH_NUMBER;
496 *SRS_PP_PERSPECTIVE_POINT_HEIGHT = *Geo::OSRc::SRS_PP_PERSPECTIVE_POINT_HEIGHT;
497 *SRS_PP_SATELLITE_HEIGHT = *Geo::OSRc::SRS_PP_SATELLITE_HEIGHT;
498 *SRS_PP_FIPSZONE = *Geo::OSRc::SRS_PP_FIPSZONE;
499 *SRS_PP_ZONE = *Geo::OSRc::SRS_PP_ZONE;
500 *SRS_PP_LATITUDE_OF_1ST_POINT = *Geo::OSRc::SRS_PP_LATITUDE_OF_1ST_POINT;
501 *SRS_PP_LONGITUDE_OF_1ST_POINT = *Geo::OSRc::SRS_PP_LONGITUDE_OF_1ST_POINT;
502 *SRS_PP_LATITUDE_OF_2ND_POINT = *Geo::OSRc::SRS_PP_LATITUDE_OF_2ND_POINT;
503 *SRS_PP_LONGITUDE_OF_2ND_POINT = *Geo::OSRc::SRS_PP_LONGITUDE_OF_2ND_POINT;
504 *SRS_PP_PEG_POINT_LATITUDE = *Geo::OSRc::SRS_PP_PEG_POINT_LATITUDE;
505 *SRS_PP_PEG_POINT_LONGITUDE = *Geo::OSRc::SRS_PP_PEG_POINT_LONGITUDE;
506 *SRS_PP_PEG_POINT_HEADING = *Geo::OSRc::SRS_PP_PEG_POINT_HEADING;
507 *SRS_PP_PEG_POINT_HEIGHT = *Geo::OSRc::SRS_PP_PEG_POINT_HEIGHT;
508 *SRS_UL_METER = *Geo::OSRc::SRS_UL_METER;
509 *SRS_UL_FOOT = *Geo::OSRc::SRS_UL_FOOT;
510 *SRS_UL_FOOT_CONV = *Geo::OSRc::SRS_UL_FOOT_CONV;
511 *SRS_UL_US_FOOT = *Geo::OSRc::SRS_UL_US_FOOT;
512 *SRS_UL_US_FOOT_CONV = *Geo::OSRc::SRS_UL_US_FOOT_CONV;
513 *SRS_UL_NAUTICAL_MILE = *Geo::OSRc::SRS_UL_NAUTICAL_MILE;
514 *SRS_UL_NAUTICAL_MILE_CONV = *Geo::OSRc::SRS_UL_NAUTICAL_MILE_CONV;
515 *SRS_UL_LINK = *Geo::OSRc::SRS_UL_LINK;
516 *SRS_UL_LINK_CONV = *Geo::OSRc::SRS_UL_LINK_CONV;
517 *SRS_UL_CHAIN = *Geo::OSRc::SRS_UL_CHAIN;
518 *SRS_UL_CHAIN_CONV = *Geo::OSRc::SRS_UL_CHAIN_CONV;
519 *SRS_UL_ROD = *Geo::OSRc::SRS_UL_ROD;
520 *SRS_UL_ROD_CONV = *Geo::OSRc::SRS_UL_ROD_CONV;
521 *SRS_UL_LINK_Clarke = *Geo::OSRc::SRS_UL_LINK_Clarke;
522 *SRS_UL_LINK_Clarke_CONV = *Geo::OSRc::SRS_UL_LINK_Clarke_CONV;
523 *SRS_UL_KILOMETER = *Geo::OSRc::SRS_UL_KILOMETER;
524 *SRS_UL_KILOMETER_CONV = *Geo::OSRc::SRS_UL_KILOMETER_CONV;
525 *SRS_UL_DECIMETER = *Geo::OSRc::SRS_UL_DECIMETER;
526 *SRS_UL_DECIMETER_CONV = *Geo::OSRc::SRS_UL_DECIMETER_CONV;
527 *SRS_UL_CENTIMETER = *Geo::OSRc::SRS_UL_CENTIMETER;
528 *SRS_UL_CENTIMETER_CONV = *Geo::OSRc::SRS_UL_CENTIMETER_CONV;
529 *SRS_UL_MILLIMETER = *Geo::OSRc::SRS_UL_MILLIMETER;
530 *SRS_UL_MILLIMETER_CONV = *Geo::OSRc::SRS_UL_MILLIMETER_CONV;
531 *SRS_UL_INTL_NAUT_MILE = *Geo::OSRc::SRS_UL_INTL_NAUT_MILE;
532 *SRS_UL_INTL_NAUT_MILE_CONV = *Geo::OSRc::SRS_UL_INTL_NAUT_MILE_CONV;
533 *SRS_UL_INTL_INCH = *Geo::OSRc::SRS_UL_INTL_INCH;
534 *SRS_UL_INTL_INCH_CONV = *Geo::OSRc::SRS_UL_INTL_INCH_CONV;
535 *SRS_UL_INTL_FOOT = *Geo::OSRc::SRS_UL_INTL_FOOT;
536 *SRS_UL_INTL_FOOT_CONV = *Geo::OSRc::SRS_UL_INTL_FOOT_CONV;
537 *SRS_UL_INTL_YARD = *Geo::OSRc::SRS_UL_INTL_YARD;
538 *SRS_UL_INTL_YARD_CONV = *Geo::OSRc::SRS_UL_INTL_YARD_CONV;
539 *SRS_UL_INTL_STAT_MILE = *Geo::OSRc::SRS_UL_INTL_STAT_MILE;
540 *SRS_UL_INTL_STAT_MILE_CONV = *Geo::OSRc::SRS_UL_INTL_STAT_MILE_CONV;
541 *SRS_UL_INTL_FATHOM = *Geo::OSRc::SRS_UL_INTL_FATHOM;
542 *SRS_UL_INTL_FATHOM_CONV = *Geo::OSRc::SRS_UL_INTL_FATHOM_CONV;
543 *SRS_UL_INTL_CHAIN = *Geo::OSRc::SRS_UL_INTL_CHAIN;
544 *SRS_UL_INTL_CHAIN_CONV = *Geo::OSRc::SRS_UL_INTL_CHAIN_CONV;
545 *SRS_UL_INTL_LINK = *Geo::OSRc::SRS_UL_INTL_LINK;
546 *SRS_UL_INTL_LINK_CONV = *Geo::OSRc::SRS_UL_INTL_LINK_CONV;
547 *SRS_UL_US_INCH = *Geo::OSRc::SRS_UL_US_INCH;
548 *SRS_UL_US_INCH_CONV = *Geo::OSRc::SRS_UL_US_INCH_CONV;
549 *SRS_UL_US_YARD = *Geo::OSRc::SRS_UL_US_YARD;
550 *SRS_UL_US_YARD_CONV = *Geo::OSRc::SRS_UL_US_YARD_CONV;
551 *SRS_UL_US_CHAIN = *Geo::OSRc::SRS_UL_US_CHAIN;
552 *SRS_UL_US_CHAIN_CONV = *Geo::OSRc::SRS_UL_US_CHAIN_CONV;
553 *SRS_UL_US_STAT_MILE = *Geo::OSRc::SRS_UL_US_STAT_MILE;
554 *SRS_UL_US_STAT_MILE_CONV = *Geo::OSRc::SRS_UL_US_STAT_MILE_CONV;
555 *SRS_UL_INDIAN_YARD = *Geo::OSRc::SRS_UL_INDIAN_YARD;
556 *SRS_UL_INDIAN_YARD_CONV = *Geo::OSRc::SRS_UL_INDIAN_YARD_CONV;
557 *SRS_UL_INDIAN_FOOT = *Geo::OSRc::SRS_UL_INDIAN_FOOT;
558 *SRS_UL_INDIAN_FOOT_CONV = *Geo::OSRc::SRS_UL_INDIAN_FOOT_CONV;
559 *SRS_UL_INDIAN_CHAIN = *Geo::OSRc::SRS_UL_INDIAN_CHAIN;
560 *SRS_UL_INDIAN_CHAIN_CONV = *Geo::OSRc::SRS_UL_INDIAN_CHAIN_CONV;
561 *SRS_UA_DEGREE = *Geo::OSRc::SRS_UA_DEGREE;
562 *SRS_UA_DEGREE_CONV = *Geo::OSRc::SRS_UA_DEGREE_CONV;
563 *SRS_UA_RADIAN = *Geo::OSRc::SRS_UA_RADIAN;
564 *SRS_PM_GREENWICH = *Geo::OSRc::SRS_PM_GREENWICH;
565 *SRS_DN_NAD27 = *Geo::OSRc::SRS_DN_NAD27;
566 *SRS_DN_NAD83 = *Geo::OSRc::SRS_DN_NAD83;
567 *SRS_DN_WGS72 = *Geo::OSRc::SRS_DN_WGS72;
568 *SRS_DN_WGS84 = *Geo::OSRc::SRS_DN_WGS84;
569 *SRS_WGS84_SEMIMAJOR = *Geo::OSRc::SRS_WGS84_SEMIMAJOR;
570 *SRS_WGS84_INVFLATTENING = *Geo::OSRc::SRS_WGS84_INVFLATTENING;
571 *OAO_Other = *Geo::OSRc::OAO_Other;
572 *OAO_North = *Geo::OSRc::OAO_North;
573 *OAO_South = *Geo::OSRc::OAO_South;
574 *OAO_East = *Geo::OSRc::OAO_East;
575 *OAO_West = *Geo::OSRc::OAO_West;
576 *OAO_Up = *Geo::OSRc::OAO_Up;
577 *OAO_Down = *Geo::OSRc::OAO_Down;
578 *OAMS_TRADITIONAL_GIS_ORDER = *Geo::OSRc::OAMS_TRADITIONAL_GIS_ORDER;
579 *OAMS_AUTHORITY_COMPLIANT = *Geo::OSRc::OAMS_AUTHORITY_COMPLIANT;
580 *OAMS_CUSTOM = *Geo::OSRc::OAMS_CUSTOM;
587 use vars qw /%PROJECTIONS %PARAMETERS %LINEAR_UNITS %ANGULAR_UNITS %DATUMS/;
590 if (/^SRS_PT_(\w+)/) {
591 my $p = eval
'$Geo::OSR::'.$_;
592 $PROJECTIONS{$p} = 1;
594 elsif (/^SRS_PP_(\w+)/) {
595 my $p = eval
'$Geo::OSR::'.$_;
598 elsif (/^SRS_UL_(\w+)/) {
599 my $p = eval
'$Geo::OSR::'.$_;
600 $LINEAR_UNITS{$p} = 1;
602 elsif (/^SRS_UA_(\w+)/) {
603 my $p = eval
'$Geo::OSR::'.$_;
604 $ANGULAR_UNITS{$p} = 1;
606 elsif (/^SRS_DN_(\w+)/) {
607 my $p = eval
'$Geo::OSR::'.$_;
613 return keys %PROJECTIONS;
617 return keys %PARAMETERS;
621 return keys %LINEAR_UNITS;
625 return keys %ANGULAR_UNITS;
636 package Geo::OSR::SpatialReference;
646 $format = pop
if @_ == 1;
649 my $simplify = $params{simplify}
650 my $dialect = $params{dialect}
652 WKT => sub {
return ExportToWkt($self) },
653 Text => sub {
return ExportToWkt($self) },
654 PrettyWKT => sub {
return ExportToPrettyWkt($self, $simplify) },
655 Proj4 => sub {
return ExportToProj4($self) },
656 PCI => sub {
return ExportToPCI($self) },
657 USGS => sub {
return ExportToUSGS($self) },
658 GML => sub {
return ExportToXML($self, $dialect) },
659 XML => sub {
return ExportToXML($self, $dialect) },
660 MICoordSys => sub {
return ExportToMICoordSys() },
661 MapInfoCS => sub {
return ExportToMICoordSys() },
663 error(1, $format, \%converters) unless $converters{$format};
664 return $converters{$format}->();
666 *AsText = *ExportToWkt;
670 my($self, %params) = @_;
671 if (exists $params{Authority} and exists $params{TargetKey} and exists $params{Node} and exists $params{Code}) {
672 SetAuthority($self, $params{TargetKey}, $params{Authority}, $params{Code});
673 } elsif (exists $params{Node} and exists $params{Value}) {
674 SetAttrValue($self, $params{Node}, $params{Value});
675 } elsif (exists $params{AngularUnits} and exists $params{Value}) {
676 SetAngularUnits($self, $params{AngularUnits}, $params{Value});
677 } elsif (exists $params{LinearUnits} and exists $params{Node} and exists $params{Value}) {
678 SetTargetLinearUnits($self, $params{Node}, $params{LinearUnits}, $params{Value});
679 } elsif (exists $params{LinearUnits} and exists $params{Value}) {
680 SetLinearUnitsAndUpdateParameters($self, $params{LinearUnits}, $params{Value});
681 } elsif ($params{Parameter} and exists $params{Value}) {
682 error(1, $params{Parameter}, \%Geo::OSR::PARAMETERS) unless exists $Geo::OSR::PARAMETERS{$params{Parameter}};
683 $params{Normalized} ?
684 SetNormProjParm($self, $params{Parameter}, $params{Value}) :
685 SetProjParm($self, $params{Parameter}, $params{Value});
686 } elsif (exists $params{Name}) {
687 SetWellKnownGeogCS($self, $params{Name});
688 } elsif (exists $params{GuessFrom}) {
689 SetFromUserInput($self, $params{GuessFrom});
690 } elsif (exists $params{LOCAL_CS}) {
691 SetLocalCS($self, $params{LOCAL_CS});
692 } elsif (exists $params{GeocentricCS}) {
693 SetGeocCS($self, $params{GeocentricCS});
694 } elsif (exists $params{VerticalCS} and $params{Datum}) {
695 my $type = $params{VertDatumType} || 2005;
696 SetVertCS($self, $params{VerticalCS}, $params{Datum}, $type);
697 } elsif (exists $params{CoordinateSystem}) {
699 @parameters = @{$params{Parameters}}
if ref($params{Parameters});
700 if ($params{CoordinateSystem} eq
'State Plane' and exists $params{Zone}) {
701 my $NAD83 = exists $params{NAD83} ? $params{NAD83} : 1;
702 my $name = exists $params{UnitName} ? $params{UnitName} : undef;
703 my $c = exists $params{UnitConversionFactor} ? $params{UnitConversionFactor} : 0.0;
704 SetStatePlane($self, $params{Zone}, $NAD83, $name, $c);
705 } elsif ($params{CoordinateSystem} eq
'UTM' and exists $params{Zone} and exists $params{North}) {
706 my $north = exists $params{North} ? $params{North} : 1;
707 SetUTM($self, $params{Zone}, $north);
708 } elsif ($params{CoordinateSystem} eq
'WGS') {
709 SetTOWGS84($self, @parameters);
710 } elsif ($params{CoordinateSystem} and $params{Datum} and $params{Spheroid}) {
711 SetGeogCS($self, $params{CoordinateSystem}, $params{Datum}, $params{Spheroid}, @parameters);
712 } elsif ($params{CoordinateSystem} and $params{HorizontalCS} and $params{VerticalCS}) {
713 SetCompoundCS($self, $params{CoordinateSystem}, $params{HorizontalCS}, $params{VerticalCS});
715 SetProjCS($self, $params{CoordinateSystem});
717 } elsif (exists $params{Projection}) {
718 error(1, $params{Projection}, \%Geo::OSR::PROJECTIONS) unless exists $Geo::OSR::PROJECTIONS{$params{Projection}};
720 @parameters = @{$params{Parameters}}
if ref($params{Parameters});
721 if ($params{Projection} eq
'Albers_Conic_Equal_Area') {
722 SetACEA($self, @parameters);
723 } elsif ($params{Projection} eq
'Azimuthal_Equidistant') {
724 SetAE($self, @parameters);
725 } elsif ($params{Projection} eq
'Bonne') {
726 SetBonne($self, @parameters);
727 } elsif ($params{Projection} eq
'Cylindrical_Equal_Area') {
728 SetCEA($self, @parameters);
729 } elsif ($params{Projection} eq
'Cassini_Soldner') {
730 SetCS($self, @parameters);
731 } elsif ($params{Projection} eq
'Equidistant_Conic') {
732 SetEC($self, @parameters);
733 # Eckert_I, Eckert_II, Eckert_III, Eckert_V ?
734 } elsif ($params{Projection} eq
'Eckert_IV') {
735 SetEckertIV($self, @parameters);
736 } elsif ($params{Projection} eq
'Eckert_VI') {
737 SetEckertVI($self, @parameters);
738 } elsif ($params{Projection} eq
'Equirectangular') {
740 SetEquirectangular($self, @parameters) :
741 SetEquirectangular2($self, @parameters);
742 } elsif ($params{Projection} eq
'Gauss_Schreiber_Transverse_Mercator') {
743 SetGaussSchreiberTMercator($self, @parameters);
744 } elsif ($params{Projection} eq
'Gall_Stereographic') {
745 SetGS($self, @parameters);
746 } elsif ($params{Projection} eq
'Goode_Homolosine') {
747 SetGH($self, @parameters);
748 } elsif ($params{Projection} eq
'Interrupted_Goode_Homolosine') {
750 } elsif ($params{Projection} eq
'Geostationary_Satellite') {
751 SetGEOS($self, @parameters);
752 } elsif ($params{Projection} eq
'Gnomonic') {
753 SetGnomonic($self, @parameters);
754 } elsif ($params{Projection} eq
'Hotine_Oblique_Mercator') {
755 # Hotine_Oblique_Mercator_Azimuth_Center ?
756 SetHOM($self, @parameters);
757 } elsif ($params{Projection} eq
'Hotine_Oblique_Mercator_Two_Point_Natural_Origin') {
758 SetHOM2PNO($self, @parameters);
759 } elsif ($params{Projection} eq
'Krovak') {
760 SetKrovak($self, @parameters);
761 } elsif ($params{Projection} eq
'Lambert_Azimuthal_Equal_Area') {
762 SetLAEA($self, @parameters);
763 } elsif ($params{Projection} eq
'Lambert_Conformal_Conic_2SP') {
764 SetLCC($self, @parameters);
765 } elsif ($params{Projection} eq
'Lambert_Conformal_Conic_1SP') {
766 SetLCC1SP($self, @parameters);
767 } elsif ($params{Projection} eq
'Lambert_Conformal_Conic_2SP_Belgium') {
768 SetLCCB($self, @parameters);
769 } elsif ($params{Projection} eq
'miller_cylindrical') {
770 SetMC($self, @parameters);
771 } elsif ($params{Projection} =~ /^Mercator/) {
772 # Mercator_1SP, Mercator_2SP, Mercator_Auxiliary_Sphere ?
773 # variant is in Variant (or Name)
774 SetMercator($self, @parameters);
775 } elsif ($params{Projection} eq
'Mollweide') {
776 SetMollweide($self, @parameters);
777 } elsif ($params{Projection} eq
'New_Zealand_Map_Grid') {
778 SetNZMG($self, @parameters);
779 } elsif ($params{Projection} eq
'Oblique_Stereographic') {
780 SetOS($self, @parameters);
781 } elsif ($params{Projection} eq
'Orthographic') {
782 SetOrthographic($self, @parameters);
783 } elsif ($params{Projection} eq
'Polyconic') {
784 SetPolyconic($self, @parameters);
785 } elsif ($params{Projection} eq
'Polar_Stereographic') {
786 SetPS($self, @parameters);
787 } elsif ($params{Projection} eq
'Robinson') {
788 SetRobinson($self, @parameters);
789 } elsif ($params{Projection} eq
'Sinusoidal') {
790 SetSinusoidal($self, @parameters);
791 } elsif ($params{Projection} eq
'Stereographic') {
792 SetStereographic($self, @parameters);
793 } elsif ($params{Projection} eq
'Swiss_Oblique_Cylindrical') {
794 SetSOC($self, @parameters);
795 } elsif ($params{Projection} eq
'Transverse_Mercator_South_Orientated') {
796 SetTMSO($self, @parameters);
797 } elsif ($params{Projection} =~ /^Transverse_Mercator/) {
798 my($variant) = $params{Projection} =~ /^Transverse_Mercator_(\w+)/;
801 SetTMVariant($self, $variant, @parameters) :
802 SetTM($self, @parameters);
803 } elsif ($params{Projection} eq
'Tunisia_Mining_Grid') {
804 SetTMG($self, @parameters);
805 } elsif ($params{Projection} eq
'VanDerGrinten') {
806 SetVDG($self, @parameters);
808 # Aitoff, Craster_Parabolic, International_Map_of_the_World_Polyconic, Laborde_Oblique_Mercator
809 # Loximuthal, Miller_Cylindrical, Quadrilateralized_Spherical_Cube, Quartic_Authalic, Two_Point_Equidistant
810 # Wagner_I, Wagner_II, Wagner_III, Wagner_IV, Wagner_V, Wagner_VI, Wagner_VII
811 # Winkel_I, Winkel_II, Winkel_Tripel
813 SetProjection($self, $params{Projection});
816 error(
"Not enough information to create a spatial reference object.");
822 my $zone = _GetUTMZone($self);
829 return ($zone, $north);
836 package Geo::OSR::CoordinateTransformation;
842 sub TransformPoints {
843 my($self, $points) = @_;
844 _TransformPoints($self, $points),
return unless ref($points->[0]->[0]);
845 for my $p (@$points) {
846 TransformPoints($self, $p);